Flutter webview black screen黑屏优化

在混合开发中,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、插件包版本处于最新稳定发行版,尽量在真机下调试。