on off 切り替えるために欲しくなったので調べた。
ToggleButtons とは
トグルボタンのセット。
選択可能項目数 0 ~ 全項目数
ToggleButtons(
isSelected: isSelected,
onPressed: (int index) {
setState(() {
isSelected[index] = !isSelected[index]; // 反転させてる
});
},
children: const <Widget>[
Icon(Icons.ac_unit),
Icon(Icons.call),
Icon(Icons.cake),
],
),
選択可能項目数 1
ToggleButtons(
isSelected: isSelected,
onPressed: (int index) {
setState(() {
for (int buttonIndex = 0; buttonIndex < isSelected.length; buttonIndex++) {
if (buttonIndex == index) {
isSelected[buttonIndex] = true;
} else {
isSelected[buttonIndex] = false;
}
}
});
},
children: const <Widget>[
Icon(Icons.ac_unit),
Icon(Icons.call),
Icon(Icons.cake),
],
),
選択可能項目数 0 ~ 1
ToggleButtons(
isSelected: isSelected,
onPressed: (int index) {
setState(() {
for (int buttonIndex = 0; buttonIndex < isSelected.length; buttonIndex++) {
if (buttonIndex == index) {
isSelected[buttonIndex] = !isSelected[buttonIndex];
} else {
isSelected[buttonIndex] = false;
}
}
});
},
children: const <Widget>[
Icon(Icons.ac_unit),
Icon(Icons.call),
Icon(Icons.cake),
],
),
選択可能項目数 1 ~ 全項目数
ToggleButtons(
isSelected: isSelected,
onPressed: (int index) {
int count = 0;
for (final bool value in isSelected) {
if (value) {
count += 1; // isSelectedを数える
}
}
if (isSelected[index] && count < 2) {
return; // 1個しか選択されてなかったらここで終了 => 0 にはできない
}
setState(() {
isSelected[index] = !isSelected[index];
});
},
children: const <Widget>[
Icon(Icons.ac_unit),
Icon(Icons.call),
Icon(Icons.cake),
],
),
今更ちゃんと調べたもの
- int
- 整数
参考