TF-1033: replace hard code position by scrollController.position.pixels
This commit is contained in:
@@ -1366,12 +1366,13 @@ class ComposerController extends BaseController {
|
|||||||
popBack();
|
popBack();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void onEnterKeyDown() {
|
void onEnterKeyDown() {
|
||||||
scrollController.animateTo(
|
if(scrollController.position.pixels < scrollController.position.maxScrollExtent) {
|
||||||
keyboardRichTextController.currentLine * 20,
|
scrollController.animateTo(
|
||||||
duration: const Duration(milliseconds: 300),
|
scrollController.position.pixels + 20,
|
||||||
curve: Curves.linear,
|
duration: const Duration(milliseconds: 1),
|
||||||
);
|
curve: Curves.linear,
|
||||||
|
);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -66,7 +66,7 @@ class IdentityCreatorController extends BaseController {
|
|||||||
String? _contentHtmlEditor;
|
String? _contentHtmlEditor;
|
||||||
|
|
||||||
final ScrollController scrollController = ScrollController();
|
final ScrollController scrollController = ScrollController();
|
||||||
double currentPositionYHTMLEditor = 250;
|
final GlobalKey htmlKey = GlobalKey();
|
||||||
|
|
||||||
void updateNameIdentity(BuildContext context, String? value) {
|
void updateNameIdentity(BuildContext context, String? value) {
|
||||||
_nameIdentity = value;
|
_nameIdentity = value;
|
||||||
@@ -405,19 +405,24 @@ class IdentityCreatorController extends BaseController {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void onFocusHTMLEditor() {
|
void onFocusHTMLEditor() async {
|
||||||
scrollController.animateTo(
|
await Scrollable.ensureVisible(htmlKey.currentContext!);
|
||||||
currentPositionYHTMLEditor,
|
await Future.delayed(const Duration(milliseconds: 500), () {
|
||||||
duration: const Duration(milliseconds: 300),
|
scrollController.animateTo(
|
||||||
curve: Curves.linear,
|
scrollController.position.pixels + defaultKeyboardToolbarHeight,
|
||||||
);
|
duration: const Duration(milliseconds: 1),
|
||||||
|
curve: Curves.linear,
|
||||||
|
);
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
void onEnterKeyDown() {
|
void onEnterKeyDown() {
|
||||||
scrollController.animateTo(
|
if(scrollController.position.pixels < scrollController.position.maxScrollExtent) {
|
||||||
currentPositionYHTMLEditor - keyboardRichTextController.currentLine * 20,
|
scrollController.animateTo(
|
||||||
duration: const Duration(milliseconds: 300),
|
scrollController.position.pixels + 20,
|
||||||
curve: Curves.linear,
|
duration: const Duration(milliseconds: 1),
|
||||||
);
|
curve: Curves.linear,
|
||||||
|
);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -285,7 +285,6 @@ class IdentityCreatorView extends GetWidget<IdentityCreatorController> {
|
|||||||
child: SingleChildScrollView(
|
child: SingleChildScrollView(
|
||||||
controller: controller.scrollController,
|
controller: controller.scrollController,
|
||||||
physics: const ClampingScrollPhysics(),
|
physics: const ClampingScrollPhysics(),
|
||||||
reverse: true,
|
|
||||||
child: Padding(
|
child: Padding(
|
||||||
padding: const EdgeInsets.all(24.0),
|
padding: const EdgeInsets.all(24.0),
|
||||||
child: Column(children: [
|
child: Column(children: [
|
||||||
@@ -510,7 +509,7 @@ class IdentityCreatorView extends GetWidget<IdentityCreatorController> {
|
|||||||
);
|
);
|
||||||
} else {
|
} else {
|
||||||
return html_editor_mobile.HtmlEditor(
|
return html_editor_mobile.HtmlEditor(
|
||||||
key:const Key('html_editor_mobile'),
|
key: controller.htmlKey,
|
||||||
minHeight: 230,
|
minHeight: 230,
|
||||||
onCreated: (htmlEditorController) {
|
onCreated: (htmlEditorController) {
|
||||||
controller.keyboardRichTextController.onCreateHTMLEditor(
|
controller.keyboardRichTextController.onCreateHTMLEditor(
|
||||||
|
|||||||
@@ -44,6 +44,9 @@ class VacationController extends BaseController {
|
|||||||
final messageTextController = TextEditingController();
|
final messageTextController = TextEditingController();
|
||||||
final subjectTextController = TextEditingController();
|
final subjectTextController = TextEditingController();
|
||||||
final richTextControllerForMobile = RichTextController();
|
final richTextControllerForMobile = RichTextController();
|
||||||
|
final htmlEditorMinHeight = 150;
|
||||||
|
|
||||||
|
final GlobalKey htmlKey = GlobalKey();
|
||||||
|
|
||||||
VacationResponse? currentVacation;
|
VacationResponse? currentVacation;
|
||||||
String? _vacationMessageHtmlText;
|
String? _vacationMessageHtmlText;
|
||||||
@@ -51,7 +54,6 @@ class VacationController extends BaseController {
|
|||||||
late Worker vacationWorker;
|
late Worker vacationWorker;
|
||||||
|
|
||||||
final ScrollController scrollController = ScrollController();
|
final ScrollController scrollController = ScrollController();
|
||||||
double currentPositionYHTMLEditor = 660;
|
|
||||||
|
|
||||||
VacationController(
|
VacationController(
|
||||||
this._getAllVacationInteractor,
|
this._getAllVacationInteractor,
|
||||||
@@ -361,20 +363,25 @@ class VacationController extends BaseController {
|
|||||||
_settingController.backToUniversalSettings();
|
_settingController.backToUniversalSettings();
|
||||||
}
|
}
|
||||||
|
|
||||||
void onFocusHTMLEditor() {
|
void onFocusHTMLEditor() async {
|
||||||
scrollController.animateTo(
|
await Scrollable.ensureVisible(htmlKey.currentContext!);
|
||||||
currentPositionYHTMLEditor,
|
await Future.delayed(const Duration(milliseconds: 500), () {
|
||||||
duration: const Duration(milliseconds: 300),
|
scrollController.animateTo(
|
||||||
curve: Curves.linear,
|
scrollController.position.pixels + defaultKeyboardToolbarHeight + htmlEditorMinHeight,
|
||||||
);
|
duration: const Duration(milliseconds: 1),
|
||||||
|
curve: Curves.linear,
|
||||||
|
);
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
void onEnterKeyDown() {
|
void onEnterKeyDown() {
|
||||||
scrollController.animateTo(
|
if(scrollController.position.pixels < scrollController.position.maxScrollExtent) {
|
||||||
currentPositionYHTMLEditor + richTextControllerForMobile.currentLine * 20,
|
scrollController.animateTo(
|
||||||
duration: const Duration(milliseconds: 300),
|
scrollController.position.pixels + 20,
|
||||||
curve: Curves.linear,
|
duration: const Duration(milliseconds: 1),
|
||||||
);
|
curve: Curves.linear,
|
||||||
|
);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
|
|||||||
@@ -61,6 +61,7 @@ class VacationView extends GetWidget<VacationController> with RichTextButtonMixi
|
|||||||
: null,
|
: null,
|
||||||
padding: SettingsUtils.getMarginViewForSettingDetails(context, _responsiveUtils),
|
padding: SettingsUtils.getMarginViewForSettingDetails(context, _responsiveUtils),
|
||||||
child: SingleChildScrollView(
|
child: SingleChildScrollView(
|
||||||
|
physics: const ClampingScrollPhysics(),
|
||||||
controller: controller.scrollController,
|
controller: controller.scrollController,
|
||||||
child: Column(
|
child: Column(
|
||||||
crossAxisAlignment: CrossAxisAlignment.start,
|
crossAxisAlignment: CrossAxisAlignment.start,
|
||||||
@@ -469,8 +470,8 @@ class VacationView extends GetWidget<VacationController> with RichTextButtonMixi
|
|||||||
);
|
);
|
||||||
} else {
|
} else {
|
||||||
return html_editor_mobile.HtmlEditor(
|
return html_editor_mobile.HtmlEditor(
|
||||||
key: const Key('vacation_message_html_text_editor_mobile'),
|
key: controller.htmlKey,
|
||||||
minHeight: 150,
|
minHeight: controller.htmlEditorMinHeight,
|
||||||
addDefaultSelectionMenuItems: false,
|
addDefaultSelectionMenuItems: false,
|
||||||
initialContent: controller.vacationMessageHtmlText ?? '',
|
initialContent: controller.vacationMessageHtmlText ?? '',
|
||||||
onCreated: (htmlApi) {
|
onCreated: (htmlApi) {
|
||||||
|
|||||||
+1
-1
@@ -1012,7 +1012,7 @@ packages:
|
|||||||
name: permission_handler_platform_interface
|
name: permission_handler_platform_interface
|
||||||
url: "https://pub.dartlang.org"
|
url: "https://pub.dartlang.org"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "3.8.0"
|
version: "3.9.0"
|
||||||
permission_handler_windows:
|
permission_handler_windows:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
|
|||||||
Reference in New Issue
Block a user