我想从SQLite动态呈现标签栏。与:
在
void initState() {
我检索了必要的
Future<List<MyClass>> list
使用
getAllMyClasses().then((onValue) {
list=value;
});
但是此(上面的代码)比
晚返回 @override
Widget build(BuildContext ctxt) {
return new DefaultTabController(
代码运行,因此选项卡控制器不知道选项卡的数量(长度),TabBar的选项卡和TabBarView的小部件。
该如何解决?我如何确保建筑物渲染等待初始化状态(包括异步getAllMyClasses()
)功能?
谢谢!
答案 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;
});
});