Mẫu giao diện người dùng vuốt để làm mới được triển khai hoàn toàn trong
SwipeRefreshLayout
tiện ích giúp phát hiện thao tác vuốt theo chiều dọc, hiển thị một thanh tiến trình riêng biệt và kích hoạt lệnh gọi lại
trong ứng dụng của mình. 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ó. Hướng dẫn này cũng cho biết cách thêm một quy trình làm mới thao tác vào vùng tràn của thanh tác vụ để người dùng không thể sử dụng cử chỉ vuốt có thể kích hoạt cập nhật thủ công bằng thiết bị bên ngoài.
Thêm phần phụ thuộc vuốt mới
Để sử 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 vuốt mới
Để 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 thuộc tính
phần tử mẹ của một ListView
hoặc GridView
.
SwipeRefreshLayout
chỉ hỗ trợ một ListView
hoặc
Nhà xuất bản con GridView
.
Ví dụ sau minh hoạ cách thêm tiện ích SwipeRefreshLayout
vào một
tệp bố cục hiện tại 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"
,
chức năng vuốt để làm mới được tự động hỗ trợ. Tuy nhiên, việc khai báo rõ ràng
ListView
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 SwipeRefreshLayout
và hành vi ListFragment
.
Thêm thao tác làm mới vào thanh thao tác
Thêm 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 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 thao tác trên thanh thao tác bằ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, chứ không phải dưới dạng nút, bằng cách đặt thuộc tính
android:showAsAction=never
. Nếu bạn cho thấy hành động dưới dạng một nút, người dùng có thể cho rằng
thao tác nhấn nút làm mới khác với thao tác vuốt để làm mới. Thực hiện hành động làm mới
kém dễ thấy hơn trong thanh tác vụ. Khuyến khích người dùng cập nhật thủ công bằng các cử chỉ vuốt
trong khi vẫn duy trì tuỳ chọn truy cập được khi 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>