Sử dụng recyclerview với header một cách đơn giản tăng hiệu năng ứng dụng

1637

Trong hướng dẫn này, chúng ta sẽ học làm thế nào để thêm header vào recyclerview.

Nếu bạn đã làm việc với Android ListView, chúng ta sẽ nhận thấy rằng có phương thức xây dựng trong phương thức addHeaderView () để bạn có thể dễ dàng sử dụng để thêm tiêu đề vào ListView.

Có thể có vài cách để đạt được điều này nhưng trong bài viết này chúng ta sẽ sử dụng thuộc tính ViewType.

Ngoài ra bạn có thể xem lại bài viết khác về recyclerview trong link sau.

CREATE NEW ANDROID PROJECT

Trong bài viết này mình sử dụng cấu hình sau:

  • Android Studio 3.0
  • Min SDK 15
  • Target SDK 26

CONFIG BUILD.GRADLE

 

Ở đây mình có sử dụng thêm plugin ButterKnife để BindView các bạn xem ở đây nhé.

Step By Step

Xong phần config chúng ta sẽ tiến hành công việc từng bước một cách dễ hiểu nhất.

Step 1: Tạo layout cho Header và Item

Đầu tiên chúng ta tạo 2 file /.xml cho 2 thành phần trong recyclerview:

header_layout.xml

item_layout.xml

Step 2: Tạo ViewHolder cho 2 layout ở trên

HeaderViewHolder.java

ItemViewHolder.java

Step 3: Tạo Data mẫu để hiển thị

Đầu tiên mình tạo một Object tên ItemObject.java chứa contents.

 

Step 4: Tạo CustomRecyclerViewAdapter.java từ các file ở trên

Ở adapter này các bạn chỉ cần chú ý đến hàm:

Ở hàm này mình set header sẽ là vị trí thứ 0 và thứ 10 trong list dữ liệu itemObjects  và trả về ViewType tương ứng. Tiến hành hiển thị dữ liệu theo từng loại viewtype.

Step 5: Sử dụng Adapter vừa tạo 

Mở MainActivity tạo dữ liệu giả và đổ lên Adapter thôi. Tuỳ thuộc vào cấu trúc dữ liệu mà bạn định nghĩa các hàm trong adapter cho hợp logic.

Cuối cùng chạy app để kiểm tra nào 😀

GitHub Tham Khảo.

Bài viết gốc ở đây.