Предполагая, что header
имеет значение position 0
:
Допустим, вы хотите связать заголовок один раз, а затем прекратить связывать его после refre sh:
Когда вы вызываете notifyDataSetChanged()
для перезагрузки, метод onBindViewHolder()
в адаптере вызывается снова для обновления sh данных, помня об этом. Вы можете установить логическое значение, чтобы связывать заголовок один раз. Так что даже если onBindViewHolder()
вызывается несколько раз, заголовок будет привязан один раз.
class Adapter extends ...........{
//use a boolean as a flag
private boolean bindHeader = true;
........
.......
.......
@Override
public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) {
..........
if(position == 0 && bindHeader){
//bind the header only for the first time
......
......
//then stop binding after refresh
bindHeader = false;
}else if(position > 0){
//bind the reset of the items here
}
}
..............
..............
}