Я использовал Флажок , чтобы обновить некоторые данные.Метод обмена данными - Consumer<T>
.Проблема в том, что Checkbox может нормально работать при изменении состояния, но анимация проверки отсутствует.Я обнаружил проблему, если я использовал notifyListeners()
для уведомления об изменении данных, то анимация флажка отсутствует.
Код виджета, как показано ниже:
bool _value = false;
@override
Widget build(BuildContext context) {
// TODO: implement build
return Row(
children: <Widget>[
Checkbox(
activeColor: Colors.green,
value: _value,
onChanged: (value) {
setState(() {
_value = value;
widget.updateEnergy(); //The problem is Here!!!!!
});
},
),
Text("foodName",
style: TextStyle(color: Colors.blue,
fontSize: 13, fontWeight: FontWeight.w300),
),
Spacer(),
],
);
}
Если яиспользовал widget.updateEnergy();
для обновления данных в onChanged()
, анимация отсутствует.UpdateEnergy (), как показано ниже:
void updateCurrentEnergy(){
_currentEnergyCount.setValue(_getCurrentEnergyCount(), _dailyTargetEnergy.unit);
notifyListeners();
}
Ключ "notifyListeners ()", если убрать вызов, анимация возвращается.И мой класс данных "с ChangeNotifier", поэтому notifyListeners()
от ChangeNotifier .И я использовал ChangeNotifierProvider.value(value: dailyRecord)
, чтобы поделиться данными в родительском узле.И пользователь Consumer<DailyRecord>(...
с использованием данных.
Я надеюсь, что ваша помощь, как можно получить анимацию флажок.Спасибо!