У меня есть следующий код:
Animation _colorTween = ColorTween(begin: Colors.black, end: Colors.white).animate(animation);
AnimatedBuilder(
animation: _colorTween,
builder: (_, _) => customBuilder(_colorTween.value),
),
Переменная animation
это от другого виджета, который я никак не могу изменить. Я даже не могу управлять анимацией вперед и назад, потому что это контролируется другим встроенным виджетом.
Поэтому мне интересно, могу ли я сделать так, чтобы цвет сразу становился Colors.white при вызове форварда. В обратном случае я согласен с поведением по умолчанию.
Во-первых, я бы не назвал ваш вход Анимацией '_colorTween'
. Это просто сбивает с толку, так как это анимация!
Но поскольку вы уже используете пользовательский конструктор, вы, вероятно, могли бы сделать что-то подобное в пользовательской функции сборки:
switch(_colorTween.status) {
case AnimationStatus.forward:
return <Colors.white or something like it>
default:
return <normal calculation>
}
Хотя это может привести к чему-то немного странному, если анимация выполняется наполовину, а затем меняет направление. Вы могли бы добавить больше логики, чтобы справиться с этим, если это необходимо.
Большое спасибо за это отличное решение. Это работает очень хорошо. Я также меняю имя своей переменной с
'_colorTween'
на_colorAnimation
. Спасибо и за эту поправку. ?