簡體   English   中英

Compose - 滾動外部 HorizontalPager 時將 VerticalPager 滾動到頂部

[英]Compose - Scroll VerticalPager to the top when outer HorizontalPager is scrolled

我在 HorizontalPager 中有一個 VerticalPager。

當我將 VerticalPager 向下滾動到 HorizontalPager 第一頁的第 N 頁,然后滾動到 HorizontalPager 中的其他頁面,然后返回到 HorizontalPager 的第一頁時,我在 VerticalPager 中向下滾動到的第 N 頁被保存。

我希望在滾動 HorizontalPager 時始終打開 VerticalPager 的第一頁(而不是我瀏覽到的第 N 頁)。

我怎樣才能做到這一點?

我的代碼:

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 ->

        }
    }
}

當頁面不再可見時,您可以通過以下方式手動滾動它。

我使用snapshotFlow ,它創建一個流,當內部使用的 state 發生變化時發出值。

val verPagerState = rememberPagerState(initialPage = 0)
LaunchedEffect(Unit) {
    snapshotFlow {
        !pagerState.isScrollInProgress
                && pagerState.currentPage != idx
                && verPagerState.currentPage != 0
    }.filter { it }
        .collect {
            verPagerState.scrollToPage(0)
        }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM