Alexey
можешь посоветовать ресурс по которому ты разбирался в том, что такое notify*?
Mike
Kanstantsin
такой вариант тоже поидее может сработать
Kanstantsin
нууу
Kanstantsin
а если при апдейте тебе приходят данные и ты должен заменить что было в recycler всё полностью
Kanstantsin
ну как вариант пересоздать может адаптер ещё
Kanstantsin
instance
No
Здорово, ребят, есть EditText внутри TextInputLayout, и соответственно hint. Делаю программно setText/append и текст в едиттекст накладывается на хинт
Mike
Kanstantsin
а если с рандомных мест ?
Kanstantsin
removeByIndex
Kanstantsin
ну камон, а если листы отличаются полностью
Alexey
DiffUtils тоже не спасает, но так и быть
Alexey
я лучше соглашусь с тем, что это просто я криворукий мудак
Alexey
потому что машина, работающая по алгоритму, ошибаться не может
Kanstantsin
на мой взгляд хороший вариант или менять весь датасет или чистить что был, добавлять новые и не забывать notify
Alexey
Alexey
по-моему третий
Alexey
Mike
Alexey
я воспроизводил на пет прожекте ее и на эмуляторе и на устройстве
Artem
Alexey
сейчас же пришел просто краш в одну из систем
Alexey
в Фабрик
Kanstantsin
ну очевидно что у тебя там даже 2 листа в адаптере как я вижу, и разные холдеры
Kanstantsin
надо отлаживать короче
Alexey
да, только это не воспроизводится
Alexey
а так спасибо за совет
Alexey
надо отлаживать
Kanstantsin
там у тебя 100% где-то не совпадает что-то по листам
Kanstantsin
из ошибки это видно
Alexey
это тоже ясно
Alexey
У него число элементов вообще динамическое там. Т.е. могут быть данные новые не доабвленые, но число измениться
Kanstantsin
но просто по коду сложно понять, у тебя и холдеров там 3, и коллекций 2 из которых собирается
Alexey
от этого и крашится. имхо
Alexey
ладно, всем спасибо
Kanstantsin
Kanstantsin
как вариант тоже
Alexey
бест практисес почитаю
Alexey
Alexey
от этого крашится
Kanstantsin
@Override
public int getItemCount() {
return super.getItemCount() + getCountShift(true);
}
Alexey
это я заметил на пете еще
Alexey
пол-года назад
Kanstantsin
я думаю надо логировать тут
Alexey
да
а ресайклер должен знать сколько в нем элементов, а не по факту.
Akim
Kanstantsin
и чекать сколько RecyclerView думает что там элементов и сколько есть
Alexey
дело в том, что там даже если блин делаешь вот так
list = new ArrayList()
data = list
notify()
Kanstantsin
похоже цифры разнятся в каком-то случае одном
Kanstantsin
нечастом
Alexey
то нихрена
Kanstantsin
да в динамическом подсчете айтемов ошибка походу
Alexey
getCountShift(true); вот тут дичь находится
Kanstantsin
может там что-то считается не так
Mike
то нихрена
ты сейчас утверждаешь, что ресайклер в принципе не работает
Alexey
я просто натыкался на такие мнения на SO
Alexey
не говорю
Alexey
что это так
Alexey
это не так, он работает, просто все, что вы мне сказали, я пробовал
Kanstantsin
int shift = 1;
shift += hasEvents() && getJobList().size() > EVENTS_POSITION ? (positive ? 1 : -1) : 0;
return shift;
Kanstantsin
подебаж этот метод
Kanstantsin
вангую что тут что-то не так рассчитывается
Alexey
@futurobot_tg правда вот норм глаголит
Mike
Alexey
Alexey
но я не все знаю
Alexey
все бы знал - на написал бы сюда
Kanstantsin
дык пора идти отлаживать )
Kanstantsin
у тебя довольно запутанный там код
Kanstantsin
без IDE и логов или дебага не разобраться норм )
Alexey
мне пока не надо это исправлять
Kanstantsin
уже указали ж на несколько возможных причин
Alexey
я увидел краш, который снился мне в страшном сне
Alexey
и который я не поборол