RecyclerView là widget hiển thị danh sách/lưới lớn hiệu quả bằng cách tái sử dụng một số ít View thay vì tạo View cho mọi item. Hình dung một cửa sổ chỉ thấy vài dòng: khi cuộn, dòng trôi khỏi màn hình không bị hủy mà được đưa vào RecycledViewPool rồi bind lại dữ liệu mới cho dòng sắp hiện ra.
Các mảnh chính:
- Adapter: onCreateViewHolder() tạo View (ít khi được gọi), onBindViewHolder() gán dữ liệu (gọi liên tục khi cuộn).
- ViewHolder: giữ tham chiếu tới các View con để khỏi findViewById lặp lại.
- LayoutManager: quyết định cách sắp xếp (linear, grid, staggered).
Nhờ recycling, số View giữ trong bộ nhớ xấp xỉ số item hiển thị được, không phụ thuộc tổng số item. Dùng DiffUtil/ListAdapter để cập nhật danh sách tối thiểu thay vì notifyDataSetChanged().