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