Используйте getItemViewType
, чтобы определить, какой тип позиции должен занимать позиция.
public int getItemViewType(final int position) {
if (dataset.get(position).isHeader()) {
return TYPE_HEADER;
} else {
return TYPE_ITEM;
}
}
Затем создайте правильный ViewHolder в onCreateViewHolder
.
public RecyclerView.ViewHolder onCreateViewHolder(final ViewGroup parent, final int viewType) {
if (viewType == TYPE_HEADER) {
return HeaderViewHolder.create(parent);
}
else {
return ItemViewHolder.create(parent);
}
}
Убедитесь, что вы свяжете правильные данные в onBindViewHolder
.
public void onBindViewHolder(final RecyclerView.ViewHolder holder, final int position) {
if (getItemViewType(position) == TYPE_HEADER) {
((HeaderViewHolder) holder).bind(/* your heading data for this position */);
} else {
((ItemViewHolder) holder).bind(/* your item data for this position */);
}
}
Если это непонятно - создайте свои ViewHolders для раздувания отдельных макетов. Держатель заголовка будет раздувать более тонкую компоновку с другим фоном и т. Д.
элемент строки находится под вашим контролем, отступы, размер поля и текста – k0sh
Но я хочу, чтобы только строка строки была меньше, чем другая .. поэтому, где я могу ее настроить ? –
Как создаются разделы строк? я догадываюсь о вас, вы можете настроить его. однако, если вы хотите, чтобы только один раздел был меньше остальных, то вы можете достичь этого, зная, как отправить раздел, а затем сделать масштабирование. – k0sh