flutter - 在 Flutter 应用中立即显示应用主题

鉴于 Flutter shared_prefs 插件的异步特性,如何确保在启动应用程序时立即显示正确的主题设置? IE。在 shared_prefs 完成加载后,不闪烁默认主题,然后应用正确的主题。

最佳答案

当您的 build 方法需要等待 Future 时,正是突破 FutureBuilder 的好时机.

void main() {
  runApp(new FutureBuilder(
    future: SharedPreferences.getInstance(),
    builder: (_, snapshot) {
      return snapshot.hasData ?
             new MyApp(preferences: snapshot.data) :
             new LoadingScreen(); 
    },
  ));
}

使用这种模式构建应用程序的一些技巧:

  • SharedPreferences.getInstance() 非常快。您的应用可能会使用一个空的 Container 作为黑色加载屏幕而不是一闪而过的彩色内容看起来更好。但是,如果您同时加载其他内容,则显示您的 Logo 更有意义。

  • 如果你需要等待多个future,你可以使用 Future.wait或将多个 FutureBuilder 嵌套在一起。

https://stackoverflow.com/questions/44379849/

相关文章:

dart - GridView.builder 创建无限滚动的页面

flutter - 将图像小部件调整为父高度但溢出宽度

dart - Flutter:无法将类型为 lib1::Object 的值分配给类型为 lib2::

ios - 用于 Flutter iOS Swift 设置的谷歌地图

android - Flutter 中的扩展面板列表

dart - Flutter 中的日期时间格式 dd/MM/YYYY hh :mm

flutter - Flutter ListView、SliverList 等中的当前滚动偏移量

android - Flutter 键盘使文本字段隐藏

listview - Flutter - 容器 BoxShadow 在 ListView 中滚动时消

flutter - 如何在 flutter 应用程序中删除慢模式标签