Size: a a a

StartAndroid Ru Chat

2021 March 08

А

Александр in StartAndroid Ru Chat
Подскажите, как в recyclerview, работать со всеми его детьми, а не только с теми, что видны на экране. Или как при скролинге применить те же операции, что и сейчас применены к детям на экране
источник

Ф

Фёдор in StartAndroid Ru Chat
onBindViewholder не подходит?
источник

А

Александр in StartAndroid Ru Chat
Вот, да, в инете тоже говорят про него. Но не могу понять, что в нем нужно делать.
Предыстория: есть список, по долгому нажатию на который, ко всем детям нужно применить: их checkbox сделать видимым.
источник

А

Александр in StartAndroid Ru Chat
Проблема: checkbox появляется только у детей на экране. У детей вне экрана они не появляются. При скролинге это видно
источник

Ф

Фёдор in StartAndroid Ru Chat
Нужно сделать boolean переменную и в bindViewHolder проверять ее значение
источник

Ф

Фёдор in StartAndroid Ru Chat
И в зависимости от этого настраивать видимость чекбокса
источник

Ф

Фёдор in StartAndroid Ru Chat
Для того, чтобы состояния чекбоксов сохранялись, нужен boolean массив длиной с количество айтемов ресайклера
источник

I

Ivan in StartAndroid Ru Chat
++ меняешь boolean во всех items (те, что в адаптере лежит), потом вызываешь notifyDataSetChanged
источник

Ф

Фёдор in StartAndroid Ru Chat
notifyDataSetChanged вроде нет смысла вызывать
источник

I

Ivan in StartAndroid Ru Chat
Александр
Проблема: checkbox появляется только у детей на экране. У детей вне экрана они не появляются. При скролинге это видно
соль в том, что в общем случае в ресайклере нельзя обратиться ко всем детям, он отображает только текущее "окно"
источник

I

Ivan in StartAndroid Ru Chat
Фёдор
notifyDataSetChanged вроде нет смысла вызывать
нужно как-то перерисовать то что на экране сейчас, а не просто boolean проставить в модельки
источник

Ф

Фёдор in StartAndroid Ru Chat
Это неэффективно, а onBindVIewHolder энивей вызовется, если айтем появится на экране
источник

Ф

Фёдор in StartAndroid Ru Chat
Ivan
нужно как-то перерисовать то что на экране сейчас, а не просто boolean проставить в модельки
А, ну там вроде есть rangeChanged, но это уже муторно будет
источник

I

Ivan in StartAndroid Ru Chat
Фёдор
А, ну там вроде есть rangeChanged, но это уже муторно будет
notifyItemRangeChanged на все видимые элементы это по идее и есть notifyDataSetChanged
источник

I

Ivan in StartAndroid Ru Chat
ну я согласен что можно проверять и не перерисовывать, например, те элементы, где галочка уже стояла. Но это уже вопросы оптимизации, второй этап так сказать.
источник

А

Александр in StartAndroid Ru Chat
Спасибо большое за внимание к моей проблеме)
источник

А

Александр in StartAndroid Ru Chat
Ребят получилось!!!!!!
источник

А

Александр in StartAndroid Ru Chat
Как я рад
источник

А

Александр in StartAndroid Ru Chat
Лучшие просто
источник

Э

Эренцен in StartAndroid Ru Chat
Здравствуйте, вы не знаете может где-нибудь можно найти приложение "Сборник стихов"
источник