Sử dụng SwipeRefreshLayout trong ứng dụng Android

Ví dụ này mình sẽ hướng dẫn các bạn sử dụng SwipeRefreshLayout với RecyclerView trong ứng dụng Android.

Để có thể luôn hiển thị những dữ liệu mới nhất, chúng ta thường thực hiện cập nhật dữ liệu một cách tự động trong 1 thời gian ngắn hoặc 1 thời gia khá dài, trong nhiều trường hợp đó không phải hoàn toàn là một cách hay từ phía user, nó có thể gây tiêu tốn lưu lượng mà khiến user thấy đó là không cần thiết hoặc cũng có thể khiến user thấy lâu có hàng mới thế. Vì vậy sao ta ko để user có thể tự mình cập nhật dữ liệu mới khi thấy cần thiết. Và thật hay ho là nền tảng Android cung cấp cho chúng ta một design pattern swipe-to-refresh để thực hiện việc đó.

Chú ý: Lớp này yêu cần phiên bản mới nhất của Android v4 Support Library APIs.

Ví dụ đối với các ứng dụng thời tiết, khi user muốn biết bây giờ lạnh bao nhiêu độ thì chỉ đơn giản là kéo ngón tay từ top màn hình xuống để refresh data, thật tiện lợi phải không.

Sử dụng SwipeRefreshLayout trong ứng dụng Android
Sử dụng SwipeRefreshLayout trong ứng dụng Android

Add the SwipeRefreshLayout Widget

Add SwipeRefreshLayout như là cha của một ListView, RecyclerView hoặc GridView. Chú ý là SwipeRefreshLayout chỉ hỗ trợ cho một View đơn, SwipeRefreshLayout  không thể chứa vừa RecyclerView vừa GridView được .

main_activity.xml

Tạo thêm custom item cho RecyclerView

cat_name_item.xml

Tạo String Array cat names, array này dùng làm dữ liệu để hiển thị lên RecyclerView

Tạo Custom RecyclerView extends RecyclerView.Adapter

RecyclerViewAdapter.java

Cuối cùng là MainActivity

MainActivity.java

Trong MainActivity bạn thấy method setColorSchemeResources

Phương thức setColorSchemeResources dùng để set màu cho swipe bar, hiển thị khi người dùng vuốt từ trên xuống trong SwipeRefreshLayout.

Sử dụng SwipeRefreshLayout trong ứng dụng Android
Sử dụng SwipeRefreshLayout trong ứng dụng Android

Sự kiện onRefresh()

Method này sẽ thực hiện hành động khi Refresh Layout, trong hàm trên nó sẽ khởi tạo lại RecyclerViewAdapter  ẩn swipe bar sau 2500Millis(2.5s), thường thì phương thức setRefreshing(false) được gọi sau khi đã load xong dữ liệu hoặc load dữ liệu bị lỗi.

Project on Github: https://github.com/trongcong/SwipeRefreshLayoutExample

Gom Marker trong Android với Google Maps Android API – Google Maps Android Marker Clustering Utility Hướng dẫn tạo Material Dialog Bottom Sheet Android Tạo context menu trong Android – ActionBar ActionMode.CallBack Example Retrofit và Volley thư viện nào tốt hơn Hướng dẫn sử dụng thư viện Volley trong Android Tạo Web Service bằng PHP và MYSQL cho ứng dụng di động – Part 2 Tạo Web Service bằng PHP và MYSQL cho ứng dụng di động – Part 1 Hàm chuyển đổi Timestamp thành Datetime trong Android và JavaScript Design Patterns là gì? Tạo Project Android theo mẫu Design Patterns(Part 2) Design Patterns là gì? Tạo Project Android theo mẫu Design Patterns(Part 1)

2 thoughts on “Sử dụng SwipeRefreshLayout trong ứng dụng Android

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.