Compose — прокручивать VerticalPager вверх, когда прокручивается внешний HorizontalPager
У меня есть VerticalPager внутри HorizontalPager.
Когда я прокручиваю VerticalPager вниз до N-й страницы на 1-й странице HorizontalPager, затем прокручиваю до других страниц в HorizontalPager, затем возвращаюсь на 1-ю страницу HorizontalPager, сохраняется N-я страница, на которую я прокручивал вниз в VerticalPager.
Я хочу, чтобы 1-я страница VerticalPager (а не N-я страница, на которую я прокручивал) всегда открывалась всякий раз, когда прокручивается HorizontalPager.
Как я могу этого добиться?
Мой код:
val pagerState = rememberPagerState()
HorizontalPager(count = myList.size, state = pagerState) {
idx ->
myList[idx].let { cur ->
val verPagerState = rememberPagerState(initialPage = 0)
VerticalPager(
count = cur.photos.size,
state = verPagerState
) { page ->
}
}
}
1 ответ
Вот как вы можете прокрутить его вручную, когда страница больше не видна.
я используюsnapshotFlow
, который создает поток, выдающий значения при изменении состояния, используемого внутри.
val verPagerState = rememberPagerState(initialPage = 0)
LaunchedEffect(Unit) {
snapshotFlow {
!pagerState.isScrollInProgress
&& pagerState.currentPage != idx
&& verPagerState.currentPage != 0
}.filter { it }
.collect {
verPagerState.scrollToPage(0)
}
}