Flutter. PageView в стиле тикток
Я делаю приложение на flutter с вертикальным PageView. Но меня не устраивает механика перелистывания. Когда пользователь свайпает слишком быстро PageView пролистывает несколько страниц за раз. Как ограничить перелистывание всегда одной страницей?
Ответы (1 шт):
Нашел несколько вариантов:
Сделать pageView не перелистываемым, но обернуть его gestureDetector, который отлавливает свайп. А на это действие повесил animatePage(myPage+1, ...), где myPage - переменная, хранящая текущую страницу
Не реализовывал, но думаю тоже сработает: Источником PageView сделать List из двух виджетов (1 и 2 страница). При перелистывании на 2ю страницу удалить из list первую и добавить третью страницу. При перелистывании вперед - повторить процесс. При перелистывании назад - удалить последнюю и добавить предыдущую.
С помощью PageView контроллер математики и капельки чёрной магии тоже получилось, но встроенная анимация давала неприятный эффект дрожания страницы. Не рекомендую