Я делаю приложение и в RecycleView я помещаю данные и хочу разметить их в месяц, точка состоит в том, что он вверх дном это разделяет хорошо, но сделав scroll снизу вверх они прокручиваются месяцы.
if(meses.equals("")){
meses=asignarFecha(adapterList.get(p).getDatetime(),4);
game.mes.setText(asignarFecha(adapterList.get(p).getDatetime(),4));
}else {
if(meses.equals(asignarFecha(adapterList.get(p).getDatetime(),4))){
game.mes.setVisibility(View.GONE);
}else{
if(meses != asignarFecha(adapterList.get(p).getDatetime(),4)){
meses=asignarFecha(adapterList.get(p).getDatetime(),4);
game.mes.setText(asignarFecha(adapterList.get(p).getDatetime(),4));
game.mes.setVisibility(View.VISIBLE);
}
}
}
Такой останься scroll вверх дном:
И так останься, когда ты идешь снизу вверх:
Я учусь использовать recycleview, но столкнулся с этой проблемой.
Я это решил таким образом:
if(pos1 <= p){
if(meses.equals(mescomparacion)){
game.mes.setVisibility(View.GONE);
}else{
game.mes.setVisibility(View.VISIBLE);
meses = mescomparacion;
if(p != 0){
if(mescomparacion.equals(asignarFecha(adapterList.get(p-1).getDatetime(),4))){
game.mes.setVisibility(View.GONE);
}
}
}
pos1 = p;
}
//Scroll hacia arriba
if(pos1 > p){
if(p != 0){
meses = asignarFecha(adapterList.get(p-1).getDatetime(),4);
}else{
game.mes.setVisibility(View.VISIBLE);
pos = 1;
}
if(meses.equals(mescomparacion) && pos == 0){
game.mes.setVisibility(View.GONE);
meses = mescomparacion;
}else{
game.mes.setVisibility(View.VISIBLE);
meses = mescomparacion;
}
pos1 = p;
}
Ты можешь пробовать следующее:
recyclerView.getRecycledViewPool().setMaxRecycledViews(TYPE_HEADER, 0); //(TYPE_HEADER vendría a ser el itemViewType de tu vista agrupadora)
, Где ты инициализируешь твой adapter. С этим ты показываешь, что вид, соответствующий твоему комплектующему header не переобучился в течение scroll. Хотя ты должен считать, что у этого есть важное попадание в выступлении тебя aplicaciГіn.
Это tambiГ©n может функционировать:
holder.setIsRecyclable(false);
в твоем viewholder.