由于项目需要 做一个选择效果 只能单选 如下图
由于刚学flutter没多久 radio带小圆圈不知道怎么去掉 所以最后考虑用ChoiceChip 使用wrap包裹
代码如下:
class MyBody extends StatefulWidget {
@override
_MyBodyState createState() => _MyBodyState();
}
class _MyBodyState extends State<MyBody> {
List<String> _tags = ['距离优先', '价格优先'];
String _choice = '距离优先';
@override
Widget build(BuildContext context) {
return Wrap(
spacing: 8,
children: _tags.map((tag) {
return ChoiceChip(
label: Text(tag),
selected: _choice == tag,
//选中
backgroundColor: _choice == tag ? Colors.transparent : Colors.white,
//背景颜色
selectedColor: Colors.transparent,
//选中时候的颜色
shape: StadiumBorder(
//边框
side: BorderSide(
width: 1,
color: _choice == tag ? Color(0xff44c5fe) : Colors.grey,
style: BorderStyle.solid),
),
onSelected: (isSelected) {
setState(() {
_choice = tag;
debugPrint('$_choice');
});
},
);
}).toList(),
);
}
}