Cho đến bây giờ tôi đã sử dụng Bộ điều hợp onBindViewHolder
để đặt nền xoay chiều dựa trên Bộ điều hợp vị trí của vật phẩm.Cách liên tục thêm các hình nền xen kẽ vào các giao diện mục trong RecyclerView
@Override
public void onBindViewHolder(ViewHolder holder, int position) {
holder.itemView.setBackgroundResource(position % 2 == 0 ?
R.color.list_item_background_alternating : R.color.list_item_background);
...
}
Tuy nhiên, điều này trở nên phức tạp hơn khi làm nhiều hơn là chỉ hiển thị danh sách. Ví dụ: Khi tôi xóa một mục và gọi notifyItemRemoved(index);
RecyclerView
có hoạt ảnh đẹp và chế độ xem mục đã biến mất. Tuy nhiên, chế độ xem thay thế hình ảnh đã xóa không bị ràng buộc lại (vì rõ ràng là & lý do chính đáng) và do đó giữ nguyên nền cũ. Điều này dẫn đến sự mâu thuẫn với bố cục và trông xấu xí. Khi tôi gọi notifyDataSetChanged();
hình nền đều chính xác, nhưng tôi bị mất hoạt ảnh.
Tôi gặp sự cố tương tự khi sử dụng SortedList
(với số SortedListAdapterCallback
). Vì việc sắp xếp dường như diễn ra sau khi các khung nhìn bị ràng buộc, các hình nền sẽ bị vỡ.
Điều gì sẽ là cách phù hợp/nhất quán để thực hiện hành vi như vậy?
Ý của bạn là gì? Tôi không đăng lại. Tôi vừa trả lời câu hỏi của chính mình. Điều đó thậm chí không được khuyến khích sao? Khi viết một câu hỏi, bạn có tùy chọn để cung cấp câu trả lời cho câu hỏi đó. Vui lòng làm rõ lý do tại sao điều đó xấu. – robocab