171: support for non-scrollable text editor (#188)

Co-authored-by: Gyuri Majercsik <gyuri@fluttech.com>
pull/205/head^2
Gyuri Majercsik 4 years ago committed by Xin Yao
parent 2adebbe11b
commit 08412c167a
  1. 1
      lib/widgets/editor.dart
  2. 33
      lib/widgets/raw_editor.dart

@ -1043,7 +1043,6 @@ class RenderEditableContainerBox extends RenderBox
@override
void performLayout() {
assert(!constraints.hasBoundedHeight);
assert(constraints.hasBoundedWidth);
_resolvePadding();
assert(_resolvedPadding != null);

@ -1008,25 +1008,28 @@ class RawEditorState extends EditorState
_showCaretOnScreenScheduled = true;
SchedulerBinding.instance!.addPostFrameCallback((_) {
_showCaretOnScreenScheduled = false;
if (widget.scrollable) {
_showCaretOnScreenScheduled = false;
final viewport = RenderAbstractViewport.of(getRenderEditor())!;
final editorOffset = getRenderEditor()!
.localToGlobal(const Offset(0, 0), ancestor: viewport);
final offsetInViewport = _scrollController!.offset + editorOffset.dy;
final viewport = RenderAbstractViewport.of(getRenderEditor());
final offset = getRenderEditor()!.getOffsetToRevealCursor(
_scrollController!.position.viewportDimension,
_scrollController!.offset,
offsetInViewport,
);
final editorOffset = getRenderEditor()!
.localToGlobal(const Offset(0, 0), ancestor: viewport);
final offsetInViewport = _scrollController!.offset + editorOffset.dy;
if (offset != null) {
_scrollController!.animateTo(
offset,
duration: const Duration(milliseconds: 100),
curve: Curves.fastOutSlowIn,
final offset = getRenderEditor()!.getOffsetToRevealCursor(
_scrollController!.position.viewportDimension,
_scrollController!.offset,
offsetInViewport,
);
if (offset != null) {
_scrollController!.animateTo(
offset,
duration: const Duration(milliseconds: 100),
curve: Curves.fastOutSlowIn,
);
}
}
});
}

Loading…
Cancel
Save