简体   繁体   English

Compose - 滚动外部 HorizontalPager 时将 VerticalPager 滚动到顶部

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

I have a VerticalPager inside HorizontalPager.我在 HorizontalPager 中有一个 VerticalPager。

When I scroll VerticalPager down to the Nth page in the 1st page of the HorizontalPager, then scroll to other pages in HorizontalPager, then come back to the 1st page of the HorizontalPager the Nth page I scrolled down to in VerticalPager is saved.当我将 VerticalPager 向下滚动到 HorizontalPager 第一页的第 N 页,然后滚动到 HorizontalPager 中的其他页面,然后返回到 HorizontalPager 的第一页时,我在 VerticalPager 中向下滚动到的第 N 页被保存。

I want always the 1st page of the VerticalPager (not the Nth page I scolled to) to be open whenever HorizontalPager is scrolled.我希望在滚动 HorizontalPager 时始终打开 VerticalPager 的第一页(而不是我浏览到的第 N 页)。

How can I achieve that?我怎样才能做到这一点?

My code:我的代码:

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

        }
    }
}

Here's how you can scroll it manually when the page is no longer visible.当页面不再可见时,您可以通过以下方式手动滚动它。

I use snapshotFlow , which creates a flow that emit values when the state used inside changes.我使用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.

相关问题 在 Jetpack Compose 的 HorizontalPager 中滚动阻力 - Resistance with scroll in HorizontalPager in Jetpack Compose 在VerticalPager中滚动ListView - Scroll ListView inside VerticalPager Compose 中 Horizo​​ntalPager 的滑动灵敏度 - Swipe sensitivity for HorizontalPager in Compose android,当在viewpager中滚动recyclerview时,如何使父scrollview滚动到顶部 - android when recyclerview in a viewpager is scrolled, how to top parent scrollview scroll 在 Jetpack Compose 中使用 HorizontalPager + LazyVerticalGrid 时性能不佳 - Performance is bad when using HorizontalPager + LazyVerticalGrid in Jetpack Compose Android 分页撰写:当任何查询更改时如何滚动到顶部? - Android Paging Compose: How to scroll to top when any of the queries changed? Jetpack Compose:如何检测 Horizo​​ntalPager 中的 TabRow 何时可见并调用 ViewModel 函数? - Jetpack Compose: How to detect when TabRow inside HorizontalPager is visible and call a ViewModel function? Android Jetpack Compose 滚动到顶部 - Android Jetpack Compose Scroll to Top 如何在 Jetpack Compose 中禁用 HorizontalPager 的寻呼机 animation - How to disable pager animation of HorizontalPager in Jetpack Compose 带有 LazyColum 的 HorizontalPager 在另一个 LazyColum 中 - Jetpack Compose - HorizontalPager with LazyColum inside another LazyColum - Jetpack Compose
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM