Анимированные Switcher и Блок Builder - PullRequest
0 голосов
/ 07 ноября 2019

Я новичок в блоке шаблон в флаттер.

Один из моих классов состояний имеет список виджетов и индекс в виде поля. Моя цель - обновить дочерний элемент Анимированного Переключателя, используя виджеты этого состояния.

return AnimatedSwitcher(
  duration: Duration(milliseconds: 500),
  child: BlocBuilder<WelcomeBloc, WelcomeBlocState>(
    builder: (context, state) {

      if(state is MyState)
        return state.widgetList[state.index];

      else return Container();

    },
  ),
);

Я также пробовал наоборот, возвращая анимированный переключатель в построителе блоков, и результат тот же

Когда вызывается yield, виджет изменяется, но без каких-либоанимация.

Чего мне не хватает?

1 Ответ

0 голосов
/ 07 ноября 2019

Дочерний виджет AnimatedSwitcher должен измениться:

return BlocBuilder<WelcomeBloc, WelcomeBlocState>(
  builder: (context, state) {
    return AnimatedSwitcher(
      duration: Duration(milliseconds: 500),
      child: state is MyState ? state.widgetList[state.index] : Container(key: Key('key2')),
    );
  },
);

И не забудьте установить разные ключи для дочерних виджетов.

...