【发布时间】:2021-08-26 10:29:02
【问题描述】:
我的 SliverList 上的每个项目都有一个按钮。当我单击特定的列表项按钮时,我希望通过使用 setState 将其更改为不同的小部件。只有该特定项目按钮应更改为不同的小部件,而列表中的其余部分保留其自己的项目按钮。
示例如下。问题当然是当我单击列表上的任何按钮时,列表上每个项目上的所有按钮都会更改。需要什么才能使其仅影响列表中其按钮被按下的特定项目?
SliverList(
delegate: SliverChildBuilderDelegate((BuildContext context, int index) {
final item = gd[index];
return Container(
child: Column(
children: [
item.mypicwidget(context,item.pid),
_shownewwidget
? item.newwidget(context)
: RaisedButton(
onPressed: () {
setState(() {
_shownewwidget=true;
});
},
child: const Text('Press Me'),
),
]
),
);
【问题讨论】: