gpt4 book ai didi

flutter - 如何在列表中取消选择带有列表的其余索引?

转载 作者:行者123 更新时间:2023-12-03 04:35:52 24 4
gpt4 key购买 nike

我在行中有一个按钮列表,列表中有4个项目或按钮,
我已经制作了一个模型类,用于为每个按钮创建数据,列表是模型类型。
一切正常,我想突出显示或选择按钮,应在其上按下并选择休息索引按钮。
我能够突出显示已按下的按钮,但无法取消选择其余按钮。

//Button model class

class TopButtonModel{
String buttonLable;
bool isOnTp;
TopButtonModel({this.buttonLable, this.isOnTp});
}


//initializing list with these data

int myIndex=0;

List<TopButtonModel> buttons = [
TopButtonModel(
buttonLable: 'Skin',
isOnTp: true
),
TopButtonModel(
buttonLable: 'Hair Style',
isOnTp: false
),
TopButtonModel(
buttonLable: 'Makeup',
isOnTp: false
),
TopButtonModel(
buttonLable: 'Handset & Feet',
isOnTp: false
),


];


buttonsRow() {

return Container(
color: Colors.white,
child: ListView.builder(
// Rpadding: const EdgeInsets.only(right: 9),
scrollDirection: Axis.horizontal,
itemCount: buttons.length,
itemBuilder:(context, index) {
// myIndex =in
return Padding(
padding: const EdgeInsets.only(right: 9,top: 9),
child: FlatButton(
color: buttons[index].isOnTp?Colors.indigo:Colors.grey[200],
onPressed: () {
print(index);
setState(() {
myIndex =index;
buttons[index].isOnTp =true;


});

// if (buttons.any((item) => item.isOnTp)) {

// setState(() {
// buttons[index].isOnTp = !buttons[index].isOnTp;
// });
// }

},
child: Text(buttons[index].buttonLable,
style: TextStyle(color: buttons[index].isOnTp?Colors.white:Colors.black),
)),
);
}
),
) ;

}
想实现这个
enter image description here
以及发生了什么
enter image description here

最佳答案

这应该像这样简单:

setState(() {
buttons[myIndex].isOnTp = false;
myIndex = index;
buttons[index].isOnTp = true;
});
这是一个工作代码示例: Code Pen

关于flutter - 如何在列表中取消选择带有列表的其余索引?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64143534/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com