目前,我陷入困境,需要从map检索索引到Scaffold的其他部分。是否可以从下面的地图中检索索引值到Scaffold的其他部分(浮动操作按钮)?
Iterable<int> get positiveIntegers sync* {
int i = articleList.length - 1;
while (true) yield i--;
}
@override
Widget build(BuildContext context) {
int getLength = articleList.length;
var list = positiveIntegers.take(getLength).toList();
return Scaffold(
appBar: AppBar(
title: new Text(
'Popular',
textAlign: TextAlign.center,
),
textTheme: TextTheme(
title: TextStyle(
fontSize: 16,
fontWeight: FontWeight.w700,
color: Colors.black)),
backgroundColor: Colors.white,
centerTitle: true,
elevation: 0.0,
),
body: SwipeStack(
children: list.map((index) {
...
}
),
floatingActionButton: Container(
margin: EdgeInsets.only(top: 25, bottom: 25, left: 20),
alignment: Alignment(0, 1),
child: new Row(
children: <Widget>[
RawMaterialButton(
onPressed: () {
if (isOutOfCards == true) {
setState(() {
isOutOfCards = false;
});
}
},
child: iconBuild(context),
shape: new CircleBorder(),
fillColor: Colors.red[700],
splashColor: Colors.transparent,
highlightColor: Colors.transparent,
padding: const EdgeInsets.all(11),
),
buttonTextBuild(context),
],
),
),
);
}
Widget buttonTextBuild(BuildContext context) {
if (isOutOfCards == false) {
return Container(
child: Text('$cardIndex/${articleList.length}',
textAlign: TextAlign.left,
style: TextStyle(
fontSize: 12.75,
fontWeight: FontWeight.w500,
letterSpacing: 1)));
} else {
return Container(
child: Text('Start Again',
textAlign: TextAlign.left,
style: TextStyle(
fontSize: 12.75,
fontWeight: FontWeight.w500,
letterSpacing: 1)));
}
}
像上面的代码一样,我想从list.map中检索'index'并将其传递给buttonTextBuild中的cardIndex。
您可以这样做:
children: [
for(int index = 0; index < list.length; index++)
Text(list[index])
]
文本小部件仅是示例,您可以使用所需的任何小部件或调用传递[[list [index]的函数以获取项目
enumerate
function from the quiver
package:enumerate