借助页面指示器,您可以帮助用户了解自己在应用内容中的当前位置,以直观的方式显示进度。当您按顺序呈现内容(例如轮播界面、图片库和幻灯片,或列表中的分页)时,这些导航提示会很有用。
版本兼容性
此实现要求将项目 minSDK 设置为 API 级别 21 或更高级别。
依赖项
创建带有自定义页面指示器的横向页面浏览器
以下代码会创建一个带有页面指示器的水平页面浏览器,以便向用户提供有关有多少页面以及当前可见的页面的直观提示:
val pagerState = rememberPagerState(pageCount = { 4 }) HorizontalPager( state = pagerState, modifier = Modifier.fillMaxSize() ) { page -> // Our page content Text( text = "Page: $page", ) } Row( Modifier .wrapContentHeight() .fillMaxWidth() .align(Alignment.BottomCenter) .padding(bottom = 8.dp), horizontalArrangement = Arrangement.Center ) { repeat(pagerState.pageCount) { iteration -> val color = if (pagerState.currentPage == iteration) Color.DarkGray else Color.LightGray Box( modifier = Modifier .padding(2.dp) .clip(CircleShape) .background(color) .size(16.dp) ) } }
代码要点
- 该代码实现了
HorizontalPager
,可让您在不同内容页面之间水平滑动。在本例中,每个页面都会显示页码。 rememberPagerState()
函数会初始化分页器并将页面数量设置为 4。此函数会创建一个用于跟踪当前页面的状态对象,并让您控制分页器。pagerState.currentPage
属性用于确定应突出显示哪个页面指示器。- 页面指示器显示在由
Row
实现叠加的页面浏览器中。 - 系统会为分页器中的每个页面绘制一个 16 dp 的圆圈。当前页面的指示器显示为
DarkGray
,其余指示器圆圈显示为LightGray
。 HorizontalPager
中的Text
可组合项会在每个页面上显示“Page: [page number]”(页码:[页码])文本。
结果
包含本指南的集合
本指南属于以下精选快速入门集合,这些集合涵盖了更广泛的 Android 开发目标:

显示列表或网格
借助列表和网格,您的应用可以以视觉上令人愉悦且易于用户使用的形式显示集合。

显示互动组件
了解如何使用可组合函数根据 Material Design 设计系统轻松创建美观的界面组件。
有问题或反馈
请访问我们的常见问题解答页面,了解简短指南,或与我们联系,告诉我们您的想法。