在传统的 android ViewPager 中使用 LazyRow 滚动问题

时间:2021-06-18 16:44:30

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

使用 jetpack compose 互操作性 API 时,在预构建的 ViewPager 中使用 LazyRow 会导致滚动问题。

当试图在 LazyRow 中滚动项目时,ViewPager 会移动。有什么办法可以防止这种情况发生吗?

组合视图

<androidx.compose.ui.platform.ComposeView xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:id="@+id/compose_view"
    android:layout_width="match_parent"
    android:layout_height="wrap_content" />

在片段中设置视图

binding.composeView.setContent {
    HorizontalScrollableView(listOfCards)
}

以及用 compose 编写的视图

@Composable
fun HorizontalScrollableView(listOfCards: List<Cards>) {
    Column(
        modifier = Modifier
            .background(color = colorResource(R.color.grey10))
    ) {
        Text(
            text = "Items",
            color = colors.primary,
            style = typography.subheadBold,
            fontSize = 15.sp,
            modifier = Modifier.padding(start = 16.dp, top = 10.dp, end = 16.dp)
        )
        LazyRow(contentPadding = PaddingValues(end = 16.dp)) {
            items(
                items = listOfCards,
                key = { listOfCards.id }
            ) {
                RenderCard(it)
            }
        }
    }
}

0 个答案:

没有答案