新增自訂分頁指標

使用頁面指標,您可以協助使用者瞭解他們在應用程式內容中的目前位置,並提供進度視覺指標。這些導覽提示在您依序呈現內容時非常實用,例如輪轉介面、圖片庫和幻燈片,或是清單中的分頁。

版本相容性

這個實作方式需要將專案 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]」文字。

結果

圖 1. 分頁器在內容下方顯示圓形指標。

包含此指南的集合

本指南是精選的快速指南系列之一,涵蓋更廣泛的 Android 開發目標:

清單和格線可讓應用程式以視覺上賞心悅目且使用者易於取用的形式顯示集合。
瞭解可組合函式如何讓您輕鬆根據 Material Design 設計系統,建立美觀的 UI 元件。

有問題或意見回饋嗎?

請前往常見問題頁面,瞭解快速指南或與我們聯絡,分享您的想法。