页面加载之前的循环加载Flutter

扑扑

我有一个小部件列表和一个函数,如果小部件列表为空,则该函数返回一个Container来告诉用户添加到列表中:

_isCountEmpty() {
      if (count == 0 || count == null) {
   //if no widgets in list
        return Container(
            color: Colors.black,
            child: Text('Press edit to start adding exercises',
                style: TextStyle(
                  fontSize: 40,
                  color: Colors.white,
                )));
      }
   //if widgets in list

      return ListView(
        children: children,
        scrollDirection: Axis.vertical,
      );
    }

获得计数的initState:

 void initState() {
getCount().then(updateCount);
super.initState(); }

使用共享的首选项从另一个页面接收计数值,这些首选项在我的initState中调用。在initState中接收到计数值之前,屏幕会认为count的值为null,因此,在短短的一秒钟内,Container()就在ListView之前返回。取而代之的是,我希望在屏幕从initState获取count的值时显示圆形指示器,然后在获得count的值后返回Container或ListView

谢谢

阿巴斯

您可以尝试以下代码,这些代码将从共享的首选项中加载计数器,然后可以将Text小部件替换为所需的任何列表或容器,如果 counter == 0 || counter == null

import 'package:flutter/material.dart';
import 'package:shared_preferences/shared_preferences.dart';

void main() => runApp(MyApp());

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: HomePage(),
    );
  }
}

class HomePage extends StatefulWidget {
  @override
  _HomePageState createState() => _HomePageState();
}

class _HomePageState extends State<HomePage> {
  int counter;
  Future<SharedPreferences> prefs;

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      body: Center(
          child: FutureBuilder(
        future: prefs,
        builder: (context, AsyncSnapshot<SharedPreferences> snapshot) {
          if (!snapshot.hasData) {
            return CircularProgressIndicator();
          } else {
            counter = snapshot.data.getInt("counter");
            //Replace with whatever widget you want
            return Text("Loading is done your counter is : $counter");
          }
        },
      )),
    );
  }

  @override
  void initState() {
    super.initState();
    prefs = SharedPreferences.getInstance();
  }
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在页面加载之前加载iframe

来自分类Dev

加载数据之前页面上的加载屏幕

来自分类Dev

jQuery页面加载之前的加载器

来自分类Dev

onPageFinished在页面加载之前触发

来自分类Dev

页面加载之前的Ajax调用

来自分类Dev

在页面加载之前显示图像

来自分类Dev

Angular JS页面加载触发无限页面加载循环

来自分类Dev

在页面加载之前执行Crossrider代码

来自分类Dev

在页面加载之前缓慢显示图像

来自分类Dev

Tampermonkey脚本在页面加载之前运行

来自分类Dev

在重新加载页面之前显示图像

来自分类Dev

在HTML页面加载之前运行Google脚本

来自分类Dev

PHP 在页面加载之前不会回显

来自分类Dev

在页面加载之前使用JS加载深色主题

来自分类Dev

JS功能可在页面加载之前预加载图像

来自分类Dev

Javascript-在文档完全加载之前检测页面重新加载

来自分类Dev

在页面加载之前加载数据AngularJS和NodeJS

来自分类Dev

在加载可见页面之前加载CSS“主题”

来自分类Dev

在加载 html 页面之前通过 jquery 预加载器?

来自分类Dev

检查是否在游戏循环之前加载图像

来自分类Dev

页面加载在jQuery加载器之前0-100%,然后页面加载应为0-100%

来自分类Dev

PHP,循环后重新加载页面

来自分类Dev

无限循环(页面重新加载)蓝调

来自分类Dev

安装页面重新加载循环 PrestaShop 1.7

来自分类Dev

如何在加载页面之前获取页面的状态码

来自分类Dev

每当页面在屏幕上时如何重新加载页面-Flutter

来自分类Dev

重访-在Firefox中加载TOP LEVEL页面之前修改URL

来自分类Dev

在显示整个页面之前如何显示加载状态?

来自分类Dev

Chrome扩展程序:在页面加载之前注入JS

Related 相关文章

热门标签

归档