Android 更新listView.builder中的动画容器

Android 更新listView.builder中的动画容器,android,flutter,dart,flutter-layout,Android,Flutter,Dart,Flutter Layout,如何使用位于listview生成器下的longPress更新动画容器 widget.meetingdetails.forEach((tasks) { if (tasks['task'] == 'Meeting') { _meetinglist.add(GestureDetector( onLongPress: () { setState(() { heightChange = heightChange == 130 ? 150 : 13

如何使用位于listview生成器下的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(),

);
当我长按容器时,列表中的所有项目都会更新。我只需要按下的容器即可更新


我认为您的身高变量是该状态的一部分,该状态在_meetingList变量中的所有小部件中共享。这就是为什么它们都被更新的原因。尝试将
GestureDetector
小部件提取到它自己的有状态小部件中,并在相应的小部件中分别处理高度

可以使用实时的省道板

示例

导入“包装:颤振/材料.省道”;
void main()=>runApp(MyApp());
类MyApp扩展了无状态小部件{
最终名单_会议卡=[
会议卡(标题:“站立会议”),
会议卡(标题:“每周会议”),
会议卡(标题:“状态会议”),
会议卡(标题:“另一次会议”),
];
@凌驾
小部件构建(构建上下文){
返回材料PP(
标题:“可调高度卡”,
主页:ListView.builder(
itemCount:_meetingCards.length,
itemBuilder:(上下文,索引){
返回会议卡[索引];
}
),
);
}
}
//定义自定义表单小部件。
类MeetingCard扩展StatefulWidget{
最后的字符串标题;
会议卡({this.title});
@凌驾
_MeetingCardState createState()=>_MeetingCardState();
}
//定义相应的状态类。
类_MeetingCardState扩展状态{
//此高度特定于此小部件。
双倍高度=130;
@凌驾
小部件构建(上下文){
返回手势检测器(
onLongPress:(){
设置状态(){
高度=高度==130?150:130;
});
},
子:动画容器(
持续时间:新的持续时间(毫秒:500),
高度:高度,,
子:卡片(子:中心(子:文本(widget.title)),),
),
);
}
}

我正在从这里获取数据。因此,当我重构代码时,我得到了错误
widget.meetingdetails.forEach((任务){if(任务['task']='Meeting'){{{u meetinglist.add(…)………..
很抱歉,我听不懂你的评论。你从哪里获取信息,你得到了什么错误?在你的代码中,你必须使用,
\u meetinglist.add(MeetingCard()))
以及与会议卡相关的其他信息。我正在使用一个有状态的小部件,在其中我实现了listView构建。您的会议卡应该是一个有状态的小部件,其中定义了高度,如答案所示。它的父小部件不能保持其所有子小部件的高度状态。在这种情况下,您的会议卡小部件..检查我分享的达特帕德..嗨@AsbahRiyas,有用吗..?希望你没有被卡住..-)