OnPressed 将 activeColor 设置为列表的按钮,并将 inactiveColor 设置为其他 btns - Flutter
Posted
技术标签:
【中文标题】OnPressed 将 activeColor 设置为列表的按钮,并将 inactiveColor 设置为其他 btns - Flutter【英文标题】:OnPressed Set activeColor to a button of a list, and set inactiveColor to others btns - Flutter 【发布时间】:2018-10-27 03:45:40 【问题描述】:我有一个芯片列表,我希望它们在用户点击它们时改变颜色。
例如,如果我点击第一个芯片,它的颜色会变成黑色,而其他所有芯片都是灰色的。然后,如果我点击第二个芯片,它的颜色会变成黑色,第一个芯片的颜色会变成灰色,依此类推。
我找不到漂亮/简单的方法来做到这一点,你有什么想法吗?
非常感谢
【问题讨论】:
【参考方案1】:你可以这样做:
Widget _myChip(int number, String name)
return new Padding(
padding: const EdgeInsets.all(8.0),
child: new InkWell(
child: new Chip(
label: new Text(name,
style: new TextStyle(
color: selectedChip == number ? Colors.white : Colors.black
),),
backgroundColor:
selectedChip == number ? Colors.black : Colors.grey),
onTap: ()
setState(()
selectedChip = number;
);
,
),
);
@override
Widget build(BuildContext context)
return new Scaffold(
appBar: new AppBar(
title: new Text('***'),
),
body: new Column(
children: <Widget>[
_myChip(1, 'Arnold'),
_myChip(2, 'Sylvester'),
_myChip(3, 'Priscilla'),
_myChip(4, 'Parge'),
_myChip(5, 'Something'),
],
),
);
如果要更改筹码的颜色,您需要给筹码一个唯一的编号来识别和使用内联。
【讨论】:
以上是关于OnPressed 将 activeColor 设置为列表的按钮,并将 inactiveColor 设置为其他 btns - Flutter的主要内容,如果未能解决你的问题,请参考以下文章
如果我无法将 Future 函数分配给 onPressed 怎么办?
将数据从另一个类传递到另一个类 onPressed Flutter