如何禁用 Flutter Raw Chip 中的芯片选择图标?
How do I disable the chip selected icon in a Flutter Raw Chip?
我想创建一个带有芯片的 TabBar,如下所示:
密码是:
class TabChip extends StatefulWidget{
final String chipTitle;
TabChip(this.chipTitle) : assert(chipTitle != null);
@override
State<StatefulWidget> createState() {
return _TabChipState();
}
}
class _TabChipState extends State<TabChip>{
bool isSelected = false;
@override
Widget build(BuildContext context) {
return RawChip(
avatar: CircleAvatar(),
label: Text(widget.chipTitle,
style: TextStyle(
color: isSelected ? Colors.white : Colors.red,
fontWeight: FontWeight.bold
),),
backgroundColor: isSelected ? Colors.red : Colors.white, // Switch colors if chip is selected
shape: StadiumBorder(side: BorderSide(color: Colors.red, width: 2.0)),
selectedColor: Colors.red,
selected: isSelected,
onPressed: (){
setState(() {
isSelected = isSelected ? false : true;
});
},
// onSelected: (bool value){
// setState(() {
// isSelected = true;
// });
// },
);
}
}
Now, I have been able to use a RawChip Widget to create the basic outline of this but when the chip is selected, a tick icon is shown in the avatar.
我想禁用头像。
我还想添加一次选择一个选项卡的功能。
我该怎么做?
为了隐藏选中的勾选标记。
在您的代码中,您需要添加 - showCheckmark: false
在您的 - RawChip
RawChip(
showCheckmark: false, // Add this Code
// avatar: CircleAvatar(),
label: Text(widget.chipTitle,
style: TextStyle(
color: isSelected ? Colors.white : Colors.red,
fontWeight: FontWeight.bold
),),
backgroundColor: isSelected ? Colors.red : Colors.white, // Switch colors if chip is selected
shape: StadiumBorder(side: BorderSide(color: Colors.red, width: 2.0)),
selectedColor: Colors.red,
selected: isSelected,
onPressed: (){
setState(() {
isSelected = !isSelected;
});
},
// onSelected: (bool value){
// setState(() {
// isSelected = true;
// });
// },
),
我认为您应该看看 ChoiceChip 小部件,它只允许选择一个选项并且没有勾号。
class TabChips extends StatefulWidget {
@override
State<StatefulWidget> createState() => _TabChipsState();
}
class _TabChipsState extends State<TabChips> {
int _selectedIndex = 0;
@override
Widget build(BuildContext context) {
return Row(
children: List.generate(3, (index) {
return ChoiceChip(
selected: _selectedIndex == index,
label: Text("$index"),
onSelected: (selected) {
if (selected) {
setState(() {
_selectedIndex = index;
});
}
},
);
},
),
);
}
}
我想创建一个带有芯片的 TabBar,如下所示:
密码是:
class TabChip extends StatefulWidget{
final String chipTitle;
TabChip(this.chipTitle) : assert(chipTitle != null);
@override
State<StatefulWidget> createState() {
return _TabChipState();
}
}
class _TabChipState extends State<TabChip>{
bool isSelected = false;
@override
Widget build(BuildContext context) {
return RawChip(
avatar: CircleAvatar(),
label: Text(widget.chipTitle,
style: TextStyle(
color: isSelected ? Colors.white : Colors.red,
fontWeight: FontWeight.bold
),),
backgroundColor: isSelected ? Colors.red : Colors.white, // Switch colors if chip is selected
shape: StadiumBorder(side: BorderSide(color: Colors.red, width: 2.0)),
selectedColor: Colors.red,
selected: isSelected,
onPressed: (){
setState(() {
isSelected = isSelected ? false : true;
});
},
// onSelected: (bool value){
// setState(() {
// isSelected = true;
// });
// },
);
}
}
Now, I have been able to use a RawChip Widget to create the basic outline of this but when the chip is selected, a tick icon is shown in the avatar.
我想禁用头像。
我还想添加一次选择一个选项卡的功能。
我该怎么做?
为了隐藏选中的勾选标记。
在您的代码中,您需要添加 - showCheckmark: false
在您的 - RawChip
RawChip(
showCheckmark: false, // Add this Code
// avatar: CircleAvatar(),
label: Text(widget.chipTitle,
style: TextStyle(
color: isSelected ? Colors.white : Colors.red,
fontWeight: FontWeight.bold
),),
backgroundColor: isSelected ? Colors.red : Colors.white, // Switch colors if chip is selected
shape: StadiumBorder(side: BorderSide(color: Colors.red, width: 2.0)),
selectedColor: Colors.red,
selected: isSelected,
onPressed: (){
setState(() {
isSelected = !isSelected;
});
},
// onSelected: (bool value){
// setState(() {
// isSelected = true;
// });
// },
),
我认为您应该看看 ChoiceChip 小部件,它只允许选择一个选项并且没有勾号。
class TabChips extends StatefulWidget {
@override
State<StatefulWidget> createState() => _TabChipsState();
}
class _TabChipsState extends State<TabChips> {
int _selectedIndex = 0;
@override
Widget build(BuildContext context) {
return Row(
children: List.generate(3, (index) {
return ChoiceChip(
selected: _selectedIndex == index,
label: Text("$index"),
onSelected: (selected) {
if (selected) {
setState(() {
_selectedIndex = index;
});
}
},
);
},
),
);
}
}