颤振动态标签栏呈现(异步)

时间:2019-12-17 12:36:49

标签: asynchronous flutter dynamic tabbar

我想从SQLite动态呈现标签栏。与:

void initState() {

我检索了必要的

Future<List<MyClass>> list

使用

 getAllMyClasses().then((onValue) {
       list=value;
     });

但是此(上面的代码)比

晚返回
 @override   
 Widget build(BuildContext ctxt) {
     return new DefaultTabController(

代码运行,因此选项卡控制器不知道选项卡的数量(长度),TabBar的选项卡和TabBarView的小部件。

该如何解决?我如何确保建筑物渲染等待初始化状态(包括异步getAllMyClasses())功能?

谢谢!

1 个答案:

答案 0 :(得分:1)

您可以显示CircularProgressIndicator直到列表为空,并在有数据时显示TabBar

@override   
Widget build(BuildContext context) {
  return list==null ? CircularProgressIndicator() : DefaultTabController(...);
}

另外,使用setState重新构建小部件。

 getAllMyClasses().then((onValue) {
       //this will notify that internal state has changed and widgets will be rebuild
       setState((){
          list=value;
       });
     });