Asynchronous 如何在行内正确显示未来?
我试图显示底部AppBar图标的列表,但在此之前,我已经为成员身份做了一些条件检查 以下是完整的代码: 我遇到的问题的一个片段(在构建小部件内部): 您希望使用一个工具来实现这一点。 在代码中执行以下更改: 更改getMemberShip函数:Asynchronous 如何在行内正确显示未来?,asynchronous,flutter,dart,widget,future,Asynchronous,Flutter,Dart,Widget,Future,我试图显示底部AppBar图标的列表,但在此之前,我已经为成员身份做了一些条件检查 以下是完整的代码: 我遇到的问题的一个片段(在构建小部件内部): 您希望使用一个工具来实现这一点。 在代码中执行以下更改: 更改getMemberShip函数: Future<int> getMembership() async { // Your code } List<IconButton> buildChildren(int level) { var builder = [
Future<int> getMembership() async {
// Your code
}
List<IconButton> buildChildren(int level) {
var builder = [
// Your code
];
if (level != 1) {
// Your code
}
return builder;
_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(),
),
),
),
);
}
谢谢,成功了。我以前想过使用futurebuilder,但我不知道如何设计它。
@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(),
),
),
),
);
}