当前位置:网站首页>Flutter在 release版本,打开后随机白屏不显示内容
Flutter在 release版本,打开后随机白屏不显示内容
2022-07-04 20:20:00 【SkyCloud5+2】
使用命令行
flutter run --release --verbose
可以在模拟器上,模拟release上的运行状态,关掉app进程,再打开也有日志
白屏原因:
Flutter为加快应用启动速度,未等size赋值,就开始渲染界面。
解决办法:
监听window的尺寸变化,当不为空时,再runApp;runApp必须先WidgetsFlutterBinding.ensureInitialized(),确保有WidgetsFlutterBinding实例,不然会黑屏
Future<void> main() async {
//如果size是0,则设置回调,在回调中runApp
if(window.physicalSize.isEmpty){
print("window size is zero");
window.onMetricsChanged = (){
//在回调中,size仍然有可能是0
if(!window.physicalSize.isEmpty){
window.onMetricsChanged = null;
print("window onMetricsChanged,run app");
runMyApp();
}
};
} else{
//如果size非0,则直接runApp
print("window load success,run app");
runMyApp();
}
}
void runMyApp() async{
print("window: ${window.physicalSize.width} ${window.physicalSize.height}");
//需确保加载完成,才runApp
WidgetsFlutterBinding.ensureInitialized();
runApp(MyApp());
}
使用window需导入 dart:ui
import 'dart:ui';
边栏推荐
猜你喜欢
Render function and virtual DOM
Jmeter 之压测入门
ApplicationContext 与 BeanFactory 区别(MS)
LeetCode+ 81 - 85 单调栈专题
测试员的算法面试题-找众数
【optimtool.unconstrain】无约束优化工具箱
Y56. Chapter III kubernetes from entry to proficiency -- business image version upgrade and rollback (29)
华为ensp模拟器 DNS服务器的配置
[observation] Lenovo: 3x (1+n) smart office solution, releasing the "multiplier effect" of office productivity
黄金k线图中的三角形有几种?
随机推荐
记一次重复造轮子(Obsidian 插件设置说明汉化)
2021 CCPC 哈尔滨 I. Power and Zero(二进制 + 思维)
Roast B station charges, is it because it has no money?
Huawei ENSP simulator layer 3 switch
JS closure
async await 在map中使用
【申博攻略】六.如何联系心仪的博导
华为模拟器ensp常用命令
多模輸入事件分發機制詳解
HMS Core 统一扫码服务
实战模拟│JWT 登录认证
接口设计时的一些建议
【Try to Hack】宽字节注入
Routing configuration and connectivity test of Huawei simulator ENSP
Implementation of redis distributed lock
hash 表的概念及应用
杰理之AD 系列 MIDI 功能说明【篇】
See how Tencent does interface automation testing
杰理之AD 系列 MIDI 功能说明【篇】
js 3D爆炸碎片图片切换js特效