Вы можете использовать концепцию нескольких типов просмотра в вашем RecyclerView
, Просто с помощью getItemViewType()
, и заботиться о параметре viewType в onCreateViewHolder()
.
Например, вы можете использовать ниже модели:
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
}
}
Для вашего липким «С этой точки зрения слабого», вы можете добавить его в верхней части RecyclerView
, а затем обработать его с помощью прокрутки Случая RecyclerView
Вы должны использовать два вида вида. См. [Этот вопрос] (http: // stackoverflow.com/questions/26245139/how-to-create-recyclerview-with-multiple-view-type), чтобы увидеть, как его реализовать. Это может быть ключом к достижению того, чего вы хотите. – Fllo
Да, я сделал это только сейчас. Но одна проблема все еще задерживается - как FitBit удается удерживать строку заголовка в верхней части экрана, даже если мы прокручиваем? – Sid
Вы можете попробовать эту [библиотеку] (https://github.com/timehop/sticky-headers-recyclerview). Вы можете установить привычные макеты для элементов и заголовков, поэтому я думаю, что это то, что вы ищете – Cilenco