Как выполнить RecyclerView.ViewHolder onCreateViewHolder повторно
В зависимости от настроек внешний вид элементов списка отличается
public RecyclerView.ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
RecyclerView.ViewHolder viewHolder;
View view;
int idResLayout;
switch (viewType) {
case SELF:
idResLayout = isUseNewInterface ? R.layout.item_self2 : R.layout.item_self;
view = LayoutInflater.from(parent.getContext())
.inflate(idResLayout, parent, false);
viewHolder = new ViewHolderSelf(view);
break;
default:
idResLayout = isUseNewInterface ? R.layout.item2 : R.layout.item;
view = LayoutInflater.from(parent.getContext())
.inflate(idResLayout, parent, false);
viewHolder = new ViewHolder(view);
}
return viewHolder;
}
При смене настроек, получается так, что часть элементов списка остается старой, а часть новой. Можно ли как то выполнить пересоздание ViewHolder
Ответы (1 шт):
Автор решения: Yura Ivanov
→ Ссылка
Разделите новый интерфейс и старый по viewType'ам.
case SELF_NEW: item_self2;
case SELF: item_self
И соответственно в getItemViewType указывайте актуальный viewType.