在應用程式中加入滑動重新整理功能

試試 Compose
Jetpack Compose 是 Android 推薦的 UI 工具包。瞭解如何在 Compose 中使用「下拉重新整理」。

「滑動即可重新整理」使用者介面模式完全是在 SwipeRefreshLayout ListView 小工具中實作,該小工具會偵測垂直滑動、顯示獨特的進度列,並在應用程式中觸發回呼方法。如要啟用這項行為,請將小工具新增至版面配置檔案,做為 ListViewGridView 的父項,並實作使用者滑動時會叫用的重新整理行為。

本頁說明如何在現有版面配置中新增小工具。本單元也說明如何將重新整理動作新增至動作列溢位區域,讓無法使用滑動手勢的使用者,能透過外部裝置觸發手動更新。

新增 SwipeRefreshLayout 依附元件

如要在應用程式中使用 SwipeRefreshLayout,請在 build.gradle 檔案中新增下列依附元件:

Groovy

dependencies {
    implementation "androidx.swiperefreshlayout:swiperefreshlayout:1.2.0-alpha01"
}

Kotlin

dependencies {
    implementation("androidx.swiperefreshlayout:swiperefreshlayout:1.2.0-alpha01")
}

新增 SwipeRefreshLayout 小工具

如要將滑動重新整理小工具新增至現有應用程式,請將 SwipeRefreshLayout 新增為單一 ListViewGridView 的父項。SwipeRefreshLayout 僅支援單一 ListViewGridView 子項。

以下範例說明如何將 SwipeRefreshLayout 小工具新增至含有 ListView 的現有版面配置檔案:

<androidx.swiperefreshlayout.widget.SwipeRefreshLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/swiperefresh"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <ListView
        android:id="@android:id/list"
        android:layout_width="match_parent"
        android:layout_height="match_parent" />

</androidx.swiperefreshlayout.widget.SwipeRefreshLayout>

您也可以搭配使用 SwipeRefreshLayout 小工具和 ListFragment。如果版面配置包含 ID 為 "@android:id/list"ListView,系統就會自動支援「滑動即可重新整理」功能。不過,以這種方式明確宣告 ListView 會覆寫預設的 ListFragment 檢視畫面結構。如要使用預設檢視區塊結構,請覆寫 SwipeRefreshLayoutListFragment 的部分行為。

在動作列中新增重新整理動作

在應用程式的動作列中新增重新整理動作,讓無法執行滑動手勢的使用者觸發手動更新。舉例來說,有無障礙需求的使用者可以使用外接裝置 (例如鍵盤和 D-Pad) 觸發動作列動作。

將重新整理動作設為選單項目,而非按鈕,方法是設定 android:showAsAction=never 屬性。如果將動作顯示為按鈕,使用者可能會認為重新整理按鈕動作與滑動重新整理動作不同。在動作列中降低重新整理動作的顯眼程度,可鼓勵使用者透過滑動手勢執行手動更新,同時保留 D-Pad 使用者尋找的無障礙選項。

下列程式碼示範如何在溢位區域中新增「滑動即可重新整理」動作:

<menu xmlns:android="http://schemas.android.com/apk/res/android" >
    <item
        android:id="@+id/menu_refresh"
        android:showAsAction="never"
        android:title="@string/menu_refresh"/>
</menu>