如何使用位于列表视图生成器下的longPress更新动画容器
widget.meetingdetails.forEach((tasks) {
if (tasks['task'] == 'Meeting') {
_meetinglist.add(GestureDetector(
onLongPress: () {
setState(() {
heightChange = heightChange == 130 ? 150 : 130;
});
},
child: AnimatedContainer(
duration: new Duration(milliseconds: 500),
height: heightChange,
padding: EdgeInsets.symmetric(horizontal: 30, vertical: 10),)).......
上面的代码是我创建列表的方式,下面的代码是我在listView.builder上实现它的方式
return ListView.builder(
itemCount: _meetinglist.length,
itemBuilder: (BuildContext context, int index) => _meetinglist[index],
padding: EdgeInsets.only(bottom: 60), physics: BouncingScrollPhysics(),
);
这里,当我长按容器上的列表中的所有项目更新。我只需要按下容器即可更新
我认为您的height变量是此状态的一部分,该状态已在_meetingList变量中的所有小部件之间共享。这就是为什么它们全部都被更新的原因。尝试将GestureDetector
小部件提取到其自己的有状态小部件中,并分别在各个小部件中处理高度。