下拉刷新用户界面模式完全在 SwipeRefreshLayout
小部件中实现,该小部件检测垂直滑动,显示独特的进度条,并在您的应用中触发回调方法。通过将小部件添加到您的布局文件作为 ListView
或 GridView
的父级并实现用户滑动时调用的刷新行为来启用此行为。
此页面显示如何将小部件添加到现有布局。它还显示如何向操作栏溢出区域添加刷新操作,以便无法使用滑动手势的用户可以使用外部设备(例如键盘和方向键)触发手动更新。
添加 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
作为单个 ListView
或 GridView
的父级。 SwipeRefreshLayout
仅支持单个 ListView
或 GridView
子级。
以下示例演示如何将 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
视图结构。如果您想使用默认视图结构,请覆盖 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>