Android - RecyclerView notifyDataset не изменил представление макета
У меня есть адаптер для RecyclerView
, Адаптер имеет размер свойства, который может быть МАЛЫМ или БОЛЬШИМ.
В зависимости от свойства, макеты, загруженные для виджетов, могут отличаться.
У меня есть кнопка, чтобы изменить это свойство, однако после того, как я его установил, и если я позвоню notifyDataSetChanged()
мнения не обновляются.
Я также пытался requestLayout
а также invalidate
безуспешно. Это, onCreateViewHolder
больше никогда не вызывается.
3 ответа
notifyDataSetChanged() вызывает onBindViewHolder() при использовании RecyclerView. Он не вызывает onCreateViewHolder. Вы можете попробовать setAdapter() для вышеуказанной проблемы.
Ну, я понял, потому что раньше onCreateViewHolder
, getItemViewType
называется.
Если новый вид не установлен, он не будет вызываться. Поэтому мне пришлось создать новый viewType для каждого из небольших представлений и решаемой проблемы:).
Один из способов сделать это, как позвонить
recyclerView.setAdapater(new YourCustomRecylcerViewAdapter(yourProperty, listToUpdate))
всякий раз, когда вы меняете собственность. Это вызовет onCreateViewHolder() адаптера.