我有一个具有两个平台视图的应用程序,其中一个是涂鸦视图,另一个是网络视图,下面是我的代码
\n\nWidget build(BuildContext context) {\n return Scaffold(\n appBar: AppBar(\n title: Text('test'),\n ),\n body: BlocProvider<CourseDocBloc>(\n create: (context) => CourseDocBloc(),\n child: Container(\n height: double.infinity,\n child: Stack(\n children: <Widget>[\n Listener(\n child: WebView(\n initialUrl: 'https://google.com',\n javascriptMode: JavascriptMode.unrestricted,\n onPageStarted: (url) {\n print('start load');\n },\n onPageFinished: (url) {\n print('load finished');\n },\n ),\n onPointerDown: (e) => {print('web down')},\n onPointerUp: (e) => {print('web up')},\n ),\n UiKitView(\n viewType: 'GLView',\n hitTestBehavior: PlatformViewHitTestBehavior.transparent, \n onPlatformViewCreated: (_) => created(),\n )\n ],\n ),\n ),\n ),\n );\n }\nRun Code Online (Sandbox Code Playgroud)\n\n当我设置UiKitView hitTestBehavior: PlatformViewHitTestBehavior.transparent\xef\xbc\x8c 时,底部Listener会打印web down, web up ...,但WebView无法接收触摸事件,我无法输入并单击 html 中的按钮。这GLView只是一个渲染涂鸦的 OpenGL 视图。
flutter doctor\nDoctor summary (to see all details, run flutter doctor -v):\n[\xe2\x9c\x93] Flutter (Channel stable, v1.12.13+hotfix.5, on Mac OS X 10.14.6 18G2022, locale zh-Hans-CN)\n\n[!] Android toolchain - develop for Android devices (Android SDK version 28.0.3)\n ! Some Android licenses not accepted. To resolve this, run: flutter doctor --android-licenses\n[\xe2\x9c\x93] Xcode - develop for iOS and macOS (Xcode 11.2.1)\n[\xe2\x9c\x93] Android Studio (version 3.5)\n[!] IntelliJ IDEA Ultimate Edition (version 2019.1.2)\n \xe2\x9c\x97 Flutter plugin not installed; this adds Flutter specific functionality.\n \xe2\x9c\x97 Dart plugin not installed; this adds Dart specific functionality.\n[\xe2\x9c\x93] VS Code (version 1.40.2)\n[\xe2\x9c\x93] Connected device (1 available)\n\n! Doctor found issues in 2 categories.\nRun Code Online (Sandbox Code Playgroud)\n
使用 IgnorePointer 包装小部件会使该小部件的所有触摸事件传递到下面的小部件。
child: Stack(
children: <Widget>[
Listener(
child: WebView(
initialUrl: 'https://google.com',
javascriptMode: JavascriptMode.unrestricted,
onPageStarted: (url) {
print('start load');
},
onPageFinished: (url) {
print('load finished');
},
),
onPointerDown: (e) => {print('web down')},
onPointerUp: (e) => {print('web up')},
),
IgnorePointer(
child: UiKitView(
viewType: 'GLView',
hitTestBehavior: PlatformViewHitTestBehavior.transparent,
onPlatformViewCreated: (_) => created(),
),
),
],
),
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5520 次 |
| 最近记录: |