AppFlowy-IO / AppFlowy-IO/appflowy-editor

[Bug] iOS scroll to cursor issue

Đang mở
#644 3 bình luận 2 reaction 0 người được giao Xem trên GitHub
p1
Ngôn ngữ chính
Dart
Star
684
Fork
329
Chỉ số merge pull request
Không có pull request nào được merge trong 30 ngày

Mô tả

### Bug Description

I need to implement AppflowyEditor with dynamic height.
It worked correctly in 1.4.4 version, but version 2.1.0 breaks flow

### How to Reproduce

```dart
class HomeSamplePage extends StatefulWidget {
static const String route = '/sample';

const HomeSamplePage({Key? key}) : super(key: key);

@override
State createState() => _HomeSamplePageState();
}

class _HomeSamplePageState extends State {
final _descriptionScroll = ScrollController();
final _descriptionFocusNode = FocusNode();
late EditorState editorState;

@override
void initState() {
editorState = EditorState(
document: Document.blank(withInitialText: true),
);
_descriptionFocusNode.addListener(() {
setState(() {
//do refresh UI to show RichText buttons
});
});
super.initState();
}

@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(title: const Text('Sample')),
body: SafeArea(
child: Container(
padding: const EdgeInsets.symmetric(horizontal: 16),
child: Column(
children: [
Expanded(
child: SingleChildScrollView(
child: Column(
children: [
TextFormField(
decoration: const InputDecoration(hintText: 'Title'),
),
const Divider(),
IntrinsicHeight(
child: AppFlowyEditor(
editorStyle:
AppflowyEditorStyles.getDescriptionStyles(
context),
editorState: editorState,
editorScrollController: EditorScrollController(
editorState: editorState,
scrollController: _descriptionScroll,
shrinkWrap: true,
),
focusNode: _descriptionFocusNode,
blockComponentBuilders:
AppflowyEditorStyles.getBuilders(
context, editorState),
),
),
const Divider(),
const Text('Some text under description'),
],
),
),
),
const Divider(),
Row(
children: [
OutlinedButton(
child: const Text('switch'),
onPressed: () async {
//some action, imitate real ui
},
),
],
),
const Divider(),
if (_descriptionFocusNode.hasFocus) ...[
const SizedBox(
height: 2,
),
//custom toolbar
RichTextToolbar(editorState: editorState),
const SizedBox(
height: 2,
),
],
],
),
),
),
);
}
}
```

### Expected Behavior

cursor is always visible

### Operating System

iOS

### AppFlowy Editor Version(s)

2.1.0

### Screenshots

2.1.0
https://github.com/AppFlowy-IO/appflowy-editor/assets/142427747/5e8c4f36-4cf9-45b3-8a2a-5191e7ef995b

1.4.4

https://github.com/AppFlowy-IO/appflowy-editor/assets/142427747/c680a6eb-fbc2-4f70-9fa9-7925a84853cc

### Additional Context

I observe next logs with 2.1.0 version
flutter: App: \^[[38;5;196m┌───────────────────────────────────────────────────────────────────────────────<…>
flutter: App: \^[[38;5;196m│ 'package:appflowy_editor/src/flutter/scrollable_helpers.dart': Failed assertion: line 236 pos 7: 'globalRect.size.width >= _dragTargetRelatedToScrollOrigin.size.width &&<…>
flutter: App: \^[[38;5;196m│ globalRect.size.height >=<…>
flutter: App: \^[[38;5;196m│ _dragTargetRelatedToScrollOrigin.size.height': Drag target size is larger than scrollable size, which may cause bouncing<…>
flutter: App: \^[[38;5;196m├┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄<…>
flutter: App: \^[[38;5;196m│ #0 _AssertionError._doThrowNew (dart:core-patch/errors_patch.dart:51:61)<…>
flutter: App: \^[[38;5;196m│ #1 _AssertionError._throwNew (dart:core-patch/errors_patch.dart:40:5)<…>
flutter: App: \^[[38;5;196m│ #2 EdgeDraggingAutoScroller._scroll (package:appflowy_editor/src/flutter/scrollable_helpers.dart:236:7)<…>
flutter: App: \^[[38;5;196m│ #3 EdgeDraggingAutoScroller.startAutoScrollIfNecessary (package:appflowy_editor/src/flutter/scrollable_helpers.dart:215:5)<…>
flutter: App: \^[[38;5;196m│ #4 AutoScroller.startAutoScroll (package:appflowy_editor/src/editor/editor_component/service/scroll/auto_scroller.dart:48:5)<…>
flutter: App: \^[[38;5;196m│ #5 _MobileScrollServiceState.startAutoScroll (package:appflowy_editor/src/editor/editor_component/service/scroll/mobile_scroll_service.dart:103:19)<…>
flutter: App: \^[[38;5;196m│ #6 _ScrollServiceWidgetState.startAutoScroll (package:appflowy_editor/src/editor/editor_component/service/scroll_service_widget.dart:167:13)<…>
flutter: App: \^[[38;5;196m│ #7 _ScrollServiceWidgetState._onSelectionChanged.. (package:appflowy_editor/src/editor/editor_component/service/scroll_service_widget.dart:104:11)<…>
flutter: App: \^[[38;5;196m│ #8 new Future.delayed. (dart:async/future.dart:427:39)<…>
flutter: App: \^[[38;5;196m│ #9 _rootRun (dart:async/zone.dart:1391:47)<…>
flutter: App: \^[[38;5;196m├┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄<…>
flutter: App: \^[[38;5;196m│ ⛔ CRASH: <…>
flutter: App: \^[[38;5;196m└───────────────────────────────────────────────────────────────────────────────<…>

Hướng dẫn đóng góp

Chưa lập chỉ mục được hướng dẫn đóng góp cho kho mã nguồn này

Đánh giá

Issue này chưa được đánh giá.

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.