首页 > 解决方案 > 当我使用计时器时,FutureBuilder 不工作

问题描述

这是我的两种不同的方法。getCommunitiesList 方法正在工作,它将显示circleProgressBar然后结果。该功能getCommunitiesList_old不起作用,它仍然只显示circleProgressBar,我知道问题不在FutureBuilder. 问题出在这个函数内部。有人可以帮我确定问题吗?

Future<List<CommunitieModel>> getCommunitiesList()async{
  List<CommunitieModel> data=List();
  for(int i=1;i<30;i++) {
    data.add(CommunitieModel());//title:"Hi Temple $i",details: "Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when ...",imageUrl: "https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcQufRouQz5g0chR_vkUnDPbYpYdorS5FtT6N9asmkp-MqhDscJ-&s"));
  }
  return data;
}

Future<List<CommunitieModel>> getCommunitiesList_old()async{
  await Timer(Duration(seconds: 5),(){
    List<CommunitieModel> data=List();
    for(int i=1;i<30;i++) {
      data.add(CommunitieModel());//title:"Hi Temple $i",details: "Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when ...",imageUrl: "https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcQufRouQz5g0chR_vkUnDPbYpYdorS5FtT6N9asmkp-MqhDscJ-&s"));
    }
    return data;
  });//.tick;
}



此代码有效并由 Crazy Lazy Cat 提供

Future<List<CommunitieModel>> getCommunitiesList_old() async {
  await Future.delayed(const Duration(seconds: 5));
  List<CommunitieModel> data = List();
  for (int i = 1; i < 30; i++) {
    data.add(
        CommunitieModel()); //title:"Hi Temple $i",details: "Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when ...",imageUrl: "https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcQufRouQz5g0chR_vkUnDPbYpYdorS5FtT6N9asmkp-MqhDscJ-&s"));
  }
  return data;
}



我还有一个疑问
为什么这段代码不起作用

Future<List<SimpleCardModel>> getTempleList()async{
  await Future.delayed(const Duration(seconds: 1),(){
    List<SimpleCardModel> data = List();
    for (int i = 11; i < 44; i++) {
      data.add(SimpleCardModel(title: "Hi Temple $i",
          details: "Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when ...",
          imageUrl: "https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcQufRouQz5g0chR_vkUnDPbYpYdorS5FtT6N9asmkp-MqhDscJ-&s"));
    }
    return data;
  });


 }


标签: flutterflutter-layout

解决方案


尝试使用Future.delayed

Future<List<CommunitieModel>> getCommunitiesList_old() async {
  await Future.delayed(const Duration(seconds: 5));
  List<CommunitieModel> data = List();
  for (int i = 1; i < 30; i++) {
    data.add(
        CommunitieModel()); //title:"Hi Temple $i",details: "Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when ...",imageUrl: "https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcQufRouQz5g0chR_vkUnDPbYpYdorS5FtT6N9asmkp-MqhDscJ-&s"));
  }
  return data;
}

推荐阅读