为应用添加滑动刷新功能

下拉刷新的界面模式完全在 SwipeRefreshLayout 此 widget 可检测垂直滑动,显示独特的进度条并触发回调 方法。若要启用此行为,只需将该微件添加到布局文件作为 ListViewGridView 并实现 刷新行为。

本页介绍了如何将该 widget 添加到现有布局。还介绍了如何添加刷新 操作栏溢出区域,这样,无法使用滑动手势的用户可以触发 使用外部设备手动更新。

添加 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 微件

如需将滑动刷新 widget 添加到现有应用,请添加 SwipeRefreshLayout 作为 单个 ListViewGridView 的父级。 SwipeRefreshLayout 仅支持单个 ListViewGridView 位儿童。

以下示例演示了如何将 SwipeRefreshLayout widget 添加到 包含 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 widget 与 ListFragment。如果 布局包含一个 ID 为 "@android:id/list"ListView, 自动支持滑动刷新功能。不过,明确声明 这样一来,ListView 就会取代默认的 ListFragment 视图结构。如果 您想使用默认视图结构,替换 SwipeRefreshLayout 的某些部分 和 ListFragment 行为。

向操作栏添加刷新操作

向应用的操作栏添加刷新操作,以便无法执行滑动手势的用户可以 会触发手动更新。例如,有无障碍需求的用户可以触发操作栏操作 使用外部设备,例如键盘和方向键。

将刷新操作添加为菜单项,而不是按钮,方法是设置 android:showAsAction=never。如果您将操作显示为按钮,用户可能会认为 刷新按钮操作与滑动刷新操作不同执行刷新操作 在操作栏中不那么显眼,鼓励用户使用滑动手势进行手动更新 同时保留使用方向键用户查找的无障碍选项

以下代码演示了如何将滑动刷新操作添加到溢出区域:

<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>