Как анимировать элементы в Flutter SliverList?

У меня есть SliverList который я использую с SliverAppBar для анимации панели приложения, когда пользователь прокручивает список (на самом деле стандартный вариант использования осколков, ничего особенного).

Теперь я хочу добавить анимацию к элементам в SliverList. Например, горизонтальные переходы слайдов при добавлении элементов или своего рода вертикальное "перемешивание" между элементами при изменении порядка списка. ВAnimatedList предлагает некоторые из этих функций, но не SliverList.

Насколько я понимаю, фреймворк, вероятно, можно было бы обернуть элементы, предоставленные в SliverList в пределах AnimatedWidget(или аналогичный виджет) для анимации изменений. Однако мои знания об анимации Flutter все еще слишком новы, поэтому я прошу помощи.

Вот часть моего кода. Я бы хотел оживитьGameScoreWidget примеры ниже.

SliverList(
  delegate: SliverChildBuilderDelegate((BuildContext context, int index) {
    if (index == 0) {
      return ListReorderWidget(viewModel: viewModel);
    }
    else if (!viewModel.isLatestGame(index-1)) {
      return GameScoreWidget(position: index-1, viewModel: viewModel);
    }
    else
      return Dismissible(
        direction: DismissDirection.endToStart,
        child: GameScoreWidget(position: index-1, viewModel: viewModel),
        key: UniqueKey(),
        background: Container(color: Colors.red),
        onDismissed: (direction) {
          onGameDismissed(context);
        },
      );
  },
  childCount: viewModel.games.length+1,
  ),
)

Я не мог найти подходящего ответа на свою проблему. Я нашел этот вопрос, связанный с анимацией изменений в SliverList

Но ответа нет...

1 ответ

Использовать

https://pub.dev/packages/auto_animated

Этот пакет дает вам LiveSliverList() который можно использовать для легкого создания анимации slverList

Другие вопросы по тегам