【问题标题】:How to disable pager animation of HorizontalPager in Jetpack Compose如何在 Jetpack Compose 中禁用 Horizo​​ntalPager 的分页动画
【发布时间】:2022-11-24 17:54:26
【问题描述】:

我创建了一个包含 4 个选项卡和子页面的页面,HorizontalPagerdragEnabled = false,然后我想在单击选项卡更改页面时禁用动画。我该怎么做?

Column(modifier = Modifier.padding(bottom = 0.dp)) {
    HorizontalPager(
        state = pagerState,
        flingBehavior = PagerDefaults.rememberPagerFlingConfig(pagerState),
        verticalAlignment = Alignment.CenterVertically,
        horizontalAlignment = Alignment.CenterHorizontally,
        dragEnabled = false,
        modifier = Modifier.fillMaxSize()
    ) { pagePosition ->
        when (pagePosition) {
            0 -> GuideScreen()
            1 -> WebViewScreen()
            2 -> WebViewScreen()
            3 -> MineScreen()
        }
    }

    TabRow(selectedTabIndex = pagerState.currentPage,
        modifier = Modifier.fillMaxWidth(),
        backgroundColor = Color.White,
        indicator = {},
        divider = {}) {
        //...
    }
}

我尝试通过when(){}代码重复HorizontalPager,但是每次更改页面时WebViewScreen(一个webview页面)都会重新加载,所以这不是一个好方法。

【问题讨论】:

    标签: android kotlin android-viewpager android-jetpack-compose jetpack-compose-accompanist


    【解决方案1】:

    如果你想在切换期间禁用每个页面的转换,而不是使用

    pagerState.animateScrollToPage(index)
    

    只使用另一个没有动画

    pagerState.scrollToPage(index)
    

    【讨论】:

    • 太感谢了
    猜你喜欢
    • 2022-01-04
    • 1970-01-01
    • 2023-01-27
    • 2022-11-28
    • 2022-09-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多