Почему флажок анимации не отображается во флаттере? - PullRequest
0 голосов
/ 24 сентября 2019

Я использовал Флажок , чтобы обновить некоторые данные.Метод обмена данными - 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>(... с использованием данных.

Я надеюсь, что ваша помощь, как можно получить анимацию флажок.Спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...