flutter - Flutter:如何在 PageView 中嵌入多个水平 Webview
问题描述
我正在 Flutter 中制作 Epub 阅读器的原型。每章都显示在WebView中,这些 WebView 放置在PageView中。由于多列布局,每个 WebView 的内容都进行了分页:1 列 = 1 个可见页面。在水平滑动手势期间,预期的行为是让 WebView 的内容尽可能滚动,然后在 WebView 达到其限制时让 PageView 在页面之间滚动。注意:在 1 次滑动手势期间,两者都可能发生:WebView 先滚动,然后是 PageView。在 Android 上,由于过度滚动通知,它很容易处理,就像在这个代码中一样。
但是在 Flutter 中,WebView 是不可滚动的,我们不能使用OverscrollNotifications (AFAIK)。所以我有一些基于在 WebView 中注入 JS 代码以将滚动位置广播到 Flutter 端的工作解决方案,但这非常肮脏和令人沮丧,我讨厌这种代码......
有没有人有好的解决方案?提前非常感谢!
编辑:我有一个基于 Javascript 的新想法。我不会在滚动过程中不断向 Flutter 端发送滚动通知,而是在每个“章节”的开头和结尾插入透明像素,并仅在这些元素变得可见/不可见时向 Flutter 发送事件(感谢IntersectionObserver API)。但是这样的解决方案需要在章节的 HTML 中注入一些东西,这不是最好的解决方案。任何更好的想法仍然欢迎!
解决方案
推荐阅读
- regex - 使用 Perl 的 Excel 列过滤器
- java - Tomcat上下文文档库无法提供静态图像
- javascript - Jquery InputMask 动态验证
- mysql - 将一个表中的元素与另一个表中共享相同外键的元素之和进行比较
- python - Pandas:具有固定起点和终点的直方图
- android - Android闪屏背景而不是windowBackground
- vespa - 在 Vespa 中使用 tensorflow 神经模型重新排序
- vb.net - 位置 0 处没有行。IndexOutofRangeException
- vbscript - Windows 7 不会自动刷新文件夹,使用 Sendkey 制作了一个 vbs 脚本来刷新
- c++ - C ++中的增量和三元运算符优先级