在混合开发中,Flutter布局+WebView嵌入的场景有很多,如果单独使用WebView还好但混合在一起后发现会有一闪百过的黑屏现象,这个官方一直在做努力尽可能的兼容更多设备,但目前看来发布的VW混合模式在部分API版本部分系统下仍然会出现一闪而过黑屏的现象,如何优化?
开启混合模式
webview_flutter
1 2 3 4 5 6 |
@override void initState() { super.initState(); // Enable hybrid composition. if (Platform.isAndroid) WebView.platform = SurfaceAndroidWebView(); } |
flutter_inappwebview
1 2 3 4 |
android: AndroidInAppWebViewOptions( //设置为 true 以启用混合组合 useHybridComposition: true, ), |
延迟显示
Opacity
1 2 3 4 5 6 7 8 9 10 11 12 |
double opacity = 0.0; Opacity( opacity: opacity, child: WebView( initialUrl: your_url, onPageFinished: (_){ setState(() { opacity = 1.0; }); }), ) |
类似的小部件还有其它的,可灵活使用,说明如:当_visible
的值为true
时将会显示Text
控件,false
的时候会隐藏Text
控件
1 2 3 4 |
Opacity( opacity: _visible ? 1.0 : 0.0, child: const Text('Now you see me, now you don\'t!'), ) |
此外,尽可能让你的SDK、插件包版本处于最新稳定发行版,尽量在真机下调试。
原文连接:Flutter webview black screen黑屏优化
所有媒体,可在保留署名、
原文连接
的情况下转载,若非则不得使用我方内容。