flutter html编辑器增强警报对话框在对话框置于编辑器上时不工作

amrnrhlw  于 2022-11-30  发布在  Flutter
关注(0)|答案(3)|浏览(170)

从属关系:html_编辑器_增强:^2.4.0加1

HtmlEditor(
                 controller: controller,
                 htmlEditorOptions: HtmlEditorOptions(
                          darkMode: true,
                          initialText: _phase!.value,
                          hint: "Enter you information",
                          autoAdjustHeight: false,
                          shouldEnsureVisible: true,
                          webInitialScripts:
                          UnmodifiableListView([
                                        WebScript(
                                             name: "editorBG",
                                             script:"document.getElementsByClassName('note-editable')[0].style.backgroundColor='blue';"),
                                                      WebScript(
                                                          name: "height",
                                                          script: """
                                                          var height = document.body.scrollHeight;
                                                          window.parent.postMessage(JSON.stringify({"type": "toDart: height", "height": height}), "*"); //,"color":'white'
                                                          """),
                                                    ]
                                                  )
                                                ),
                                                htmlToolbarOptions:
                                                const HtmlToolbarOptions(
                                                  // toolbarItemHeight: 90.0,
                                                    // gridViewHorizontalSpacing: 0.1,
                                                    // gridViewVerticalSpacing: 0.1,
                                                    toolbarPosition: ToolbarPosition.aboveEditor,
                                                    toolbarType: ToolbarType.nativeGrid
                                                  ),
                                                    otherOptions: OtherOptions(
                                                    decoration: BoxDecoration(
                                                    color: Colors.white,
                                                    borderRadius:
                                                    BorderRadius.circular(10.0),
                                                    border: Border.all(
                                                        color: const Color.fromRGBO(244, 248, 248, 1),
                                                        width: 2),
                   ),
                  ),
                );

如果我点击警报对话框(图像选择)取消或确定按钮,然后点击转到编辑器只放置在对话框下。请确认什么其他依赖是兼容的...这也是Flutter内置部件,他们已经 Package 它与指针拦截器...但它仍然是不工作

vh0rcniy

vh0rcniy1#

我也遇到过类似的问题,但我在www.example.com上找到了这个https://github.com/flutter/flutter/issues/54027#issuecomment-797757996
尝试使用“--web-renderer html”运行flutter应用程序。

f3temu5u

f3temu5u2#

问题:

html_editor_enhanced使用HtmlElementView显示编辑器,HtmlElementView在Flutter使用事件之前使用鼠标事件。
当Flutter小部件覆盖在HtmlElementView小部件上时,这些小部件响应鼠标手势(例如,手柄点击),点击将由HtmlElementView使用,而不会中继到Flutter。
结果是Flutter小部件的onTap(和其他)处理程序不会按预期触发,但它们会影响底层的web视图。
来源:pointer_interceptor文档

解决方案:

使用pointer_interceptor包中的PointerInterceptor Package 对话框小部件。
来自文档:
PointerInterceptor是一个小部件,用于防止鼠标事件(在Web中)被底层HtmlElementView捕获。
因此,如果您的对话方块程式码先前为:

AlertDialog(
  content: Container(
    ...
  )
)

您应该将其更新为:

PointerInterceptor(
  AlertDialog(
    content: Container(
      ...
    )
  )
)
sqougxex

sqougxex3#

如果你在确定或取消后遇到错误,你应该在对话框/页面关闭前清除焦点。使用下面的函数,首先为htmleditor创建一个控制器

editorController.clearFocus();

相关问题