我创建了一个有4个选项卡和子页面的页面,其中HorizontalPager个有dragEnabled = 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 = {}) {
        //...
    }
}

我试着重复HorizontalPager x when(){}代码,但WebViewScreen(网页浏览页面)每次页面更改时都会重新加载,所以这不是一个好方法.

推荐答案

如果要在切换过程中禁用每个页面的过渡,而不是使用

pagerState.animateScrollToPage(index)

只需使用另一个没有动画的

pagerState.scrollToPage(index)

Android相关问答推荐

如何将文本相对于喷气背包中的图标垂直居中?

ArrayList.remove()(Kotlin中的removeAt())导致奇怪的IndexOutOfBoundsResponse异常

滑动以更改合成中的活动

如何在Android中使用TextView设置动态文本的样式

当X为lambda函数时,如何避免Android Studio错误检测参数X未使用?

约束布局:垂直链中的视图应将内容包裹到空间的1/3

Yarn 机器人导致活动未找到,但Gradlew Run工作正常

对支持哪些数据存储区方法感到困惑

如何防止在Android Studio中设置kotlin断点时优化变量

如何在使用 PointerInput 修改器时添加点击时的波纹效果

使用 JNI 从 Android 应用程序中使用 Kotlin/Native 预构建共享库

需要 java 17 而不是 java 11:Android CI-CD GitHub Actions

Jetpack Compose 使用 SavedStateHandle 发送返回结果不适用于 ViewModel 中注入的 SavedStateHandle

Jetpack Compose的val变量不能被重新分配

当 EditText 用于在 android studio 中将字符串发送到 firebase 时,仅允许安全调用错误

@Immutable 对数据类有什么好处?

如何在 Delphi 和 Android 上避免 Indy Socket Error #13 Access denied 异常?

喷气背包组成影子奇怪的行为

Android Compose 创建抖动动画

删除一对多关系室 Kotlin 中的所有值