【发布时间】:2019-08-26 04:13:20
【问题描述】:
我有这个非常基本的测试应用:
import 'package:flutter/material.dart';
void main() => runApp(MyApp());
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
print("ROOT WIDGET ");
return MaterialApp(
title: 'Flutter Demo',
theme: ThemeData(
primarySwatch: Colors.blue,
),
home: Container(decoration: BoxDecoration(color: Colors.blue),),
);
}
}
日志输出调试:
在 iPhone X 上以调试模式启动 lib/main.dart...
找到保存的证书选项“XXX”。要清除,请使用“flutter config”。 使用开发者身份为设备部署签署 iOS 应用程序:“XXX”
正在运行 Xcode 构建...
Xcode 构建完成。 39,4s
正在安装和启动...
颤动:根小部件
正在将文件同步到设备 iPhone X...
颤动:根小部件
flutter run --release 的日志输出
在 iPhone X 上以发布模式启动 lib/main.dart...
找到保存的证书选项“XXX”。要清除,请使用“flutter config”。
使用开发者身份为设备部署签署 iOS 应用程序:“XXX”
正在运行 pod install...
1,2s正在运行 Xcode 构建...
├─构建 Dart 代码... 15,8s├─正在生成dSYM文件... 0,1s
├─剥离调试符号... 0,0s
├─组装Flutter资源... 0,7s
└─编译、链接和签名... 48,3s
Xcode 构建完成。 67.4秒
正在安装和启动...
6.8秒要退出,请按“q”。
颤动:根小部件
如您所见,它只发生在调试模式下。
我问的原因是,在我的真实应用中,我使用WebView。 WebView 的函数onWebViewCreated(WebViewController controller) 只在第一次调用,所以在调试模式下WebViewController 始终为空。
【问题讨论】:
-
没关系,你不应该为此烦恼。如果它给你带来了问题,那么你很可能在 build 方法中做了一些你不应该做的事情。见stackoverflow.com/questions/52249578/…
-
感谢您的快速回答,但正如您所见,我在构建方法中基本上没有做任何事情。
-
哦,我想我明白你的意思了,在另一个应用程序中,我在构建方法中初始化了一个 webView,这可能是我不应该做的事情。但是,我必须在某个地方初始化我的 webView,如果不在 build 方法中。
-
很可能是这样 :) 你会想在 initState 或类似的中这样做
-
@Alexander Semenov 是的,在这种使用 webview 的特殊情况下,我们只在 initState 方法中对其进行了初始化,并且不再出现问题。
标签: flutter