Я бы посоветовал вам взглянуть на PageView .
. Таким образом, вы можете конвертировать список карточек в дочерние страницы PageView, где он будет выполнять перелистывание по одной странице за раз. Это будет выглядеть так:
final controller = PageController(
initialPage: 0,
);
final pageView = PageView(
controller: controller,
scrollDirection: Axis.horizontal,
children: <Widget>[
// your card list here
],
onPageChanged: (index) =>
setState(() => selectedPageIndex = index),
);