我正在构建小部件列表。我想在列表图块中显示小部件的索引。我该怎么办?是否显示它,因为该键是在运行时分配的,并且当前索引甚至在构建小部件之前就试图初始化?如果是,我如何显示小部件索引?如果没有,那又是怎么回事,我又如何显示索引?陷入这个问题的方式已经太久了,现在还不算什么。
final GlobalKey<AnimatedListState> _listKey = GlobalKey();
List<Widget> _data = [];
Widget SubActivitiesListTiles() {
SizeConfig().init(context);
return Container(
child: Container(
child: AnimatedList(
shrinkWrap: true,
key: _listKey,
initialItemCount: _data.length,
itemBuilder: (context, index, animation) {
return _buildItem(_data[index], animation);
}),
),
);
Widget _buildItem(CustomListTile, Animation animation) {
return SizeTransition(
sizeFactor: animation,
child: Card(
shape: Border(bottom: BorderSide(width: 0.4, color: Colors.black12)),
elevation: 0,
child: CustomListTile,
),
);
}
Widget ActivityTile(context, obj) {
int currentIndex=_data.indexWhere((item) =>(item.key == uniqueKey));;
UniqueKey uniqueKey = new UniqueKey();
return Container(
key: uniqueKey,
color: Colors.white,
child: ListTile(
onTap: () {
setState(() {
currentIndex =
_data.indexWhere((item) =>(item.key == uniqueKey));
Index;
updateTile(currentIndex);
});
},
title: Text(
'$currentIndex',)
)
)
}
答案 0 :(得分:1)
您可以使用widget.index。
在源代码中,您可以使用widget.index访问列表或listView中的小部件顺序,此变量将返回相应的小部件值。
像这样:
return TextFormField(
controller: _nameController,
onChanged: (v) => _MyFormState.friendsList[widget.index] = v,
decoration: InputDecoration(
hintText: 'enter index number'
),
validator: (v){
if(v.trim().isEmpty) return 'enter the value';
return null;
},
);