Với sự ra đời của Android Lollipop, RecyclerView đã chính thức được phát hành. RecyclerView là nhiều hơn nữa mạnh mẽ, linh hoạt và tăng cường lớn hơn ListView. Tôi sẽ cố gắng cung cấp cho bạn một cái nhìn chi tiết về nó.
Ưu
1) ViewHolder Pattern
Trong một ListView, nó được khuyến khích sử dụng các mô hình ViewHolder nhưng nó chưa bao giờ là bắt buộc. Trong trường hợp RecyclerView, điều này là bắt buộc khi sử dụng lớp RecyclerView.ViewHolder. Đây là một trong những khác biệt lớn giữa ListView và RecyclerView.
Nó làm cho mọi thứ phức tạp hơn một chút trong RecyclerView nhưng rất nhiều vấn đề mà chúng ta phải đối mặt trong ListView được giải quyết một cách hiệu quả.
2) LayoutManager
Đây là một cải tiến lớn đưa đến RecyclerView. Trong một ListView, kiểu xem duy nhất có sẵn là ListView dọc. Không có cách chính thức để thậm chí thực hiện một ListView ngang.
Bây giờ sử dụng một RecyclerView, chúng ta có thể có một
i) LinearLayoutManager - mà hỗ trợ cả hai danh sách dọc và ngang,
ii) StaggeredLayoutManager - hỗ trợ Pinterest như danh sách so le,
iii) GridLayoutManager - hỗ trợ hiển thị lưới như trong ứng dụng Thư viện.
Và điều tốt nhất là chúng ta có thể thực hiện tất cả những động thái này theo ý muốn.
3) mục Animator
ListViews đang thiếu trong việc hỗ trợ hình ảnh động tốt, nhưng RecyclerView mang một chiều hướng hoàn toàn mới với nó. Sử dụng lớp RecyclerView.ItemAnimator, làm cho hoạt ảnh trở nên dễ dàng và trực quan hơn rất nhiều.
4) mục Trang trí
Trong trường hợp của ListViews, động trang trí các mặt hàng giống như thêm biên giới hoặc ngăn không bao giờ dễ dàng. Nhưng trong trường hợp của RecyclerView, lớp RecyclerView.ItemDecorator cho phép kiểm soát rất lớn đối với các nhà phát triển nhưng làm cho mọi thứ tốn thời gian và phức tạp hơn một chút.
5) OnItemTouchListener
Chặn nhấp chuột mục trên một ListView là đơn giản, nhờ vào giao diện AdapterView.OnItemClickListener của nó. Nhưng RecyclerView cung cấp nhiều quyền lực và kiểm soát hơn cho các nhà phát triển của nó bằng cách RecyclerView.OnItemTouchListener nhưng nó làm phức tạp mọi thứ một chút cho nhà phát triển.
Nhược
i) Đây là cách phức tạp hơn với chế độ xem danh sách.
ii) Có thể mất rất nhiều thời gian để người mới bắt đầu hiểu đầy đủ về RecyclerView.
iii) Nó có thể làm cho cuộc sống mã hóa của bạn khó khăn một cách không cần thiết.
iv) Bạn sẽ cần phải dành thời gian nhiều hơn với nó hơn bạn đã bao giờ cần thiết cho một ListView
tất cả những tính năng hiện nay nằm ngoài Xem, xem http://www.grokkingandroid.com/first-glance -androids-recyclerview/ – pskink