Bạn có thể sử dụng các khái niệm về nhiều loại chế độ xem trong RecyclerView
của bạn, Chỉ cần bằng cách sử dụng getItemViewType()
, và chăm sóc của tham số viewType trong onCreateViewHolder()
.
Ví dụ, bạn có thể sử dụng dưới đây mô hình:
public class Data{
int field1;
float filed2;
int rowType // 1,2,2,...N this will fill by you whenever you will
//creating arraylist for your recyclerview
}
public class Custome Adapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> {
ArrayList<Data> mItems;
class ViewHolderRowType1 extends RecyclerView.ViewHolder {
...
}
class ViewHolderRowType2 extends RecyclerView.ViewHolder {
...
}
....
class ViewHolderRowTypeN extends RecyclerView.ViewHolder {
...
}
@Override
public int getItemViewType(int position) {
return mItems.get(position).rowType;
//or
//return positon%2; // This will based on your condition
}
@Override
public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
switch (viewType) {
case 0: return new ViewHolderRowType0(...);
case 1: return new ViewHolderRowType1(...);
...
case N: return new ViewHolderRowTypeN(...);
}
}
@Override
public void onBindViewHolder(RecyclerView.ViewHolder vh, int position) {
//Just check which view type is going to bind and then fill the data accordingly in your rows
if(vh instanceof ViewHolderRowType1){
// Fill the data for first view type
} else if (vh instanceof ViewHolderRowType2) {
// Fill the data for second view type
} else if (vh instanceof ViewHolderRowTypeN){
// Fill the data for Nth view type
}
}
Đối dính "quan điểm này yếu" của bạn, bạn có thể thêm nó ở trên cùng của RecyclerView
bạn và sau đó xử lý nó bằng cách cuộn tổ chức sự kiện của RecyclerView
Nguồn
2016-01-15 05:38:56
Bạn phải sử dụng hai loại chế độ xem. Xem [câu hỏi này] (http: // stackoverflow.com/questions/26245139/how-to-create-recyclerview-với-nhiều-view-type) để xem cách triển khai nó. Nó có thể là một đầu mối để đạt được những gì bạn muốn. – Fllo
Có, tôi đã thực hiện chỉ sử dụng tính năng đó. Nhưng một vấn đề vẫn còn tồn tại - làm thế nào để FitBit quản lý để giữ cho hàng tiêu đề gắn bó trên đầu màn hình ngay cả khi chúng ta cuộn? – Sid
Bạn có thể thử [thư viện] này (https://github.com/timehop/sticky-headers-recyclerview) Bạn có thể setcustom bố trí cho các mục và tiêu đề vì vậy tôi nghĩ rằng đây là excatly những gì bạn đang tìm kiếm – Cilenco