我一直想实现类似于ViewPager 2
的东西,但在composition.首先,我读到过一些地方,我不应该使用片段,只使用活动.其次,我正要做某种适配器,但我没有找到关于连接所有这些的资源.此外,我读到写pager 不是用来保存活动的,所以我有一个问题—我应该使用什么?什么可以提供类似的经验?我想有几个活动,可以改为左/右滑动.
我一直想实现类似于ViewPager 2
的东西,但在composition.首先,我读到过一些地方,我不应该使用片段,只使用活动.其次,我正要做某种适配器,但我没有找到关于连接所有这些的资源.此外,我读到写pager 不是用来保存活动的,所以我有一个问题—我应该使用什么?什么可以提供类似的经验?我想有几个活动,可以改为左/右滑动.
Jetpack Compose旨在与单个Activity一起工作.在这个Activity中,你会显示不同的组合物.
看看HorizontalPager
个组合.它提供了与ViewPager2
类似的功能.您不需要在Jetpack Compose中使用适配器.
val state = rememberPagerState { 10 } // define number of pages in PagerState
HorizontalPager(
state = state, // assign PagerState
modifier = Modifier.fillMaxSize(),
) { page -> // page is an Int that holds the index of the current page
// put the Composable that you want to displayed depending on the page
Box(
modifier = Modifier
.padding(10.dp)
.background(Color.Blue)
.fillMaxWidth()
.aspectRatio(1f),
contentAlignment = Alignment.Center
) {
Text(text = page.toString(), fontSize = 32.sp)
}
}
如果你想显示完全不同的可组合物作为页面,你可以在HorizontalPager
主体中使用一个switch
或if
语句,如下所示:
when (page) {
0 -> MyComposable1()
1 -> MyComposable2()
2 -> MyComposable3()
else -> {
DefaultComposable()
}
}