В настоящее время я играю с hasStableIds
вида переработчика, и у меня есть следующие наблюдения:
1) Когда hasStableIds = false
:
- Однажды
notifyDataSetChanged()
вызванный, он сделает все представления грязными и снова их переработает, из-за чего onCreateViewHolder()
и onBindViewHolder()
будут вызываться для каждого элемента.
2) Когда hasStableIds = true
:
- После вызова
notifyDataSetChanged()
он проверит идентификаторы, а затем решит, создавать ли viewHolder для элемента recyclerView.Если набор данных не изменяется, то он будет вызывать только onBindViewHolder()
, а не onCreateViewHolder()
снова.
Так что в соответствии с вышеизложенным поведением, я не понимаю, следует ли нам всегда использовать наше представление о переработчике сhasStableIds = true
чтобы избежать повторного создания виджетов?или есть какие-то особые условия, в которых мы должны его использовать?