Вы хотите использовать FutureBuilder для достижения этой цели. Внесите следующие изменения в свой код:
Измените функцию getMemberShip:
Future<int> getMembership() async {
// Your code
}
Измените функцию buildChildren:
List<IconButton> buildChildren(int level) {
var builder = [
// Your code
];
if (level != 1) {
// Your code
}
return builder;
}
Изменить функция _spacing:
_spacing(int level) {
if (level != 1) {
return MainAxisAlignment.spaceEvenly;
} else {
return MainAxisAlignment.spaceBetween;
}
}
Реализуйте свой метод сборки следующим образом:
@override
Widget build(BuildContext context) {
return Scaffold(
body: tabs[_currentIndex],
bottomNavigationBar: BottomAppBar(
shape: CircularNotchedRectangle(),
color: Colors.red,
child: Container(
padding: EdgeInsets.only(left: 10.0, right: 10.0),
height: 70,
color: Colors.white,
child: FutureBuilder(
builder: (context, snapshot) {
if (snapshot.hasData) {
int level = snapshot.data;
return Row(
mainAxisAlignment: _spacing(level),
children: buildChildren(level));
} else if (snapshot.error) {
return Text('Error occured');
} else {
return CircularProgressIndicator();
}
},
future: getMembership(),
),
),
),
);
}