我正在开发一个Flutter应用程序,主要用于iOS。
我的一个视图有一个文本字段,当您点击它时会出现iOS键盘。问题是-布局无法像在本地iOS应用中一样平滑地更改。而是,即使在键盘打开动画完成之前,它也会立即跳到最终可用的屏幕高度。
我尝试将SafeArea元素包装在中AnimatedSize,AnimatedContainer但没有帮助。
我的布局代码:
SafeArea(child:
Column(children:[
TextField(...)
])
)
Run Code Online (Sandbox Code Playgroud)
键盘出现时如何使布局平滑调整大小?


我在整个应用程序中声明了一个全局变量- SharedPreferences prefs,并在main方法中对其进行了初始化。
但是,SharedPreferences初始化返回一个Future-因此我尝试等待它main在应用程序关闭时解决:
SharedPreferences prefs;
void main() async {
prefs = await SharedPreferences.getInstance();
return runApp(MyApp());
}
Run Code Online (Sandbox Code Playgroud)
而且效果很好。目前,我在生产中的2个应用程序中都使用了此方法,但我突然发现使该main方法异步化可能不正确。
最后我有两个问题:
main在Dart / Flutter 中,方法是如何被调用的以及它通常如何工作?main应用程序的制作方法是否会带来意外的行为?(到目前为止)