Mẫu giao diện người dùng vuốt để làm mới được triển khai hoàn toàn trong tiện ích SwipeRefreshLayout
. Tiện ích này phát hiện thao tác vuốt theo chiều dọc, hiển thị thanh tiến trình riêng biệt và kích hoạt các phương thức gọi lại trong ứng dụng. Hãy bật hành vi này bằng cách thêm tiện ích vào tệp bố cục làm thành phần mẹ của ListView
hoặc GridView
và triển khai hành vi làm mới được gọi khi người dùng vuốt.
Trang này cho biết cách thêm tiện ích vào bố cục hiện có. Bài viết này cũng cho biết cách thêm thao tác làm mới vào vùng tràn của thanh thao tác để những người dùng không thể sử dụng cử chỉ vuốt có thể kích hoạt quá trình cập nhật thủ công bằng thiết bị bên ngoài.
Thêm phần phụ thuộc SwipeRefreshLayout
Để dùng SwipeRefreshLayout
trong ứng dụng, hãy thêm phần phụ thuộc sau vào tệp build.gradle
:
Groovy
dependencies { implementation "androidx.swiperefreshlayout:swiperefreshlayout:1.2.0-alpha01" }
Kotlin
dependencies { implementation("androidx.swiperefreshlayout:swiperefreshlayout:1.2.0-alpha01") }
Thêm tiện ích SwipeRefreshLayout
Để thêm tiện ích vuốt để làm mới vào một ứng dụng hiện có, hãy thêm SwipeRefreshLayout
làm thành phần mẹ của ListView
hoặc GridView
.
SwipeRefreshLayout
chỉ hỗ trợ một phần tử con ListView
hoặc GridView
.
Ví dụ sau minh hoạ cách thêm tiện ích SwipeRefreshLayout
vào
tệp bố cục hiện có chứa 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>
Bạn cũng có thể sử dụng tiện ích SwipeRefreshLayout
với ListFragment
. Nếu bố cục chứa ListView
có mã nhận dạng "@android:id/list"
, thì chức năng vuốt để làm mới sẽ tự động được hỗ trợ. Tuy nhiên, việc khai báo ListView
một cách rõ ràng theo cách này sẽ thay thế cấu trúc khung hiển thị ListFragment
mặc định. Nếu bạn muốn sử dụng cấu trúc khung hiển thị mặc định, hãy ghi đè các phần của hành vi SwipeRefreshLayout
và ListFragment
.
Thêm một thao tác làm mới vào thanh thao tác
Hãy thêm một thao tác làm mới vào thanh thao tác của ứng dụng để những người dùng không thể thực hiện thao tác vuốt có thể kích hoạt quá trình cập nhật thủ công. Ví dụ: người dùng có nhu cầu hỗ trợ tiếp cận có thể kích hoạt các thao tác trên thanh thao tác bằng cách sử dụng các thiết bị bên ngoài, chẳng hạn như bàn phím và D-pad.
Thêm thao tác làm mới dưới dạng một mục trong trình đơn thay vì một nút bằng cách đặt thuộc tính android:showAsAction=never
. Nếu bạn hiển thị thao tác này dưới dạng nút, thì người dùng có thể cho rằng thao tác của nút làm mới khác với thao tác vuốt để làm mới. Việc làm cho thao tác làm mới ít dễ thấy trong thanh thao tác sẽ khuyến khích người dùng thực hiện thao tác cập nhật thủ công bằng các cử chỉ vuốt trong khi vẫn duy trì tuỳ chọn hỗ trợ tiếp cận mà người dùng D-pad tìm kiếm.
Mã sau đây minh hoạ cách thêm thao tác vuốt để làm mới vào vùng tràn:
<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>