#flutter
Вопрос:
Как я могу изменить цвет переключателя, если значение также изменилось ?
вот радиобуттон
CustomRadioButton(
horizontal: false,
elevation: 0,
absoluteZeroSpacing: false,
width: 150,
enableButtonWrap: true,
//* warna radio button
selectedColor: warna(),
unSelectedColor: Color(0XFF343f56),
// selectedBorderColor: Colors.pink,
// unSelectedBorderColor: Colors.cyan,
buttonTextStyle: ButtonTextStyle(selectedColor: Colors.white),
enableShape: true,
buttonLables: _buttonLables,
buttonValues: _buttonValue,
radioButtonValue: (value) {
_radio = value;
print(_radio);
},
)
и это функция warna
String _radio; //* value radio button
List<String> _buttonLables = ['Pengeluaran', 'Pemasukan'];
List<String> _buttonValue = ['PENGELUARAN', 'PEMASUKAN'];
warna() {
if (_radio == null) {
return Colors.blue;
} else if (_radio == 'PENGELUARAN') {
return Colors.red;
} else if (_radio == 'PEMASUKAN') {
return Colors.green;
}
}
Я использую виджет с отслеживанием состояния, но цвет меняется только при горячей перезагрузке кода
Комментарии:
1. вы звоните
setState( () {} )
после смены цвета?2. Я так не думаю, я все еще учусь Трепетать
3. Вам придется позвонить
setState( () {} )
после изменения цвета… setState перестраивает виджет4. О, я понял, мне нужно установить состояние на значение радиобуттона
Ответ №1:
Я должен установить состояние, когда значение изменилось
radioButtonValue: (value) {
setState(() {
_radio = value;
});
// _radio = value;
print(_radio);
},