Size: a a a

Android Developers

2021 January 12

СП

Сергей П. in Android Developers
И он держит вьюшки созданные ранее и переиспользует ненужные - фишка в том что создание вью операция медленная, медленнее гораздо чем settext в уже готовый втыкать
источник

I

Ivansuper in Android Developers
Поэтому вью надо кодом создавать))
источник

S

Singular in Android Developers
Ivansuper
так понятно — ты всегда делал инфлейт новый. В таком случае и нет переиспользования
Дак дело в том что ListView вообще не использовал переиспользования, он всегда хранил все элементы в себе
источник

СП

Сергей П. in Android Developers
А ушедший с экрана имиджвью жрет память
источник

ДН

Дмитрий Николаев... in Android Developers
Кирилл
Загружай данные в ресайклер по мере их готовности и вызывай один из notifyItem...
нужно ли использовать лайвдату ,для того ,чтобы отслеживать готовность?
то есть надо еще и таймер поставить ?
источник

К

Кирилл in Android Developers
Singular
Дак дело в том что ListView вообще не использовал переиспользования, он всегда хранил все элементы в себе
Тебе уже 2 человека написали что он переиспользует вью если его правильно создать, почему ты продолжаешь спорить?
источник

S

Singular in Android Developers
Сергей П.
А ушедший с экрана имиджвью жрет память
Да было такое
источник

I

Ivansuper in Android Developers
Singular
Дак дело в том что ListView вообще не использовал переиспользования, он всегда хранил все элементы в себе
А как он будет работать нормально если ты каждый раз ему даешь новый вью и он при выходе за экран его в кеш сует?
источник

S

Singular in Android Developers
Кирилл
Тебе уже 2 человека написали что он переиспользует вью если его правильно создать, почему ты продолжаешь спорить?
Да как он переиспользовал? почему тогда я находясь на 100 позиции, видел что 1 элемент жив до сих пор?
В ДЕБАГЕРЕ
источник

СП

Сергей П. in Android Developers
Инфлейт медленнее кода во  много раз вероятно
источник

К

Кирилл in Android Developers
Дмитрий Николаев
нужно ли использовать лайвдату ,для того ,чтобы отслеживать готовность?
то есть надо еще и таймер поставить ?
Зачем таймер? Делай лайвдату со списком, пости в нее новый список по мере готовности элементов, а во вью обсерви ее и ставь новый список в адаптер ресайклера ( и не забудь о notify...)
источник

К

Кирилл in Android Developers
Singular
Да как он переиспользовал? почему тогда я находясь на 100 позиции, видел что 1 элемент жив до сих пор?
В ДЕБАГЕРЕ
Ты неправильно реализовал getView
источник

S

Singular in Android Developers
Кирилл
Ты неправильно реализовал getView
Я про стандартную реализцаию говорю, без ViewHolder и без if content==null
источник

СП

Сергей П. in Android Developers
Singular
Да как он переиспользовал? почему тогда я находясь на 100 позиции, видел что 1 элемент жив до сих пор?
В ДЕБАГЕРЕ
Или че то не так делал или у него настройки такие что держать все 100 элементов или сборщику мусора пока память не нужда
источник

К

Кирилл in Android Developers
Кирилл
Зачем таймер? Делай лайвдату со списком, пости в нее новый список по мере готовности элементов, а во вью обсерви ее и ставь новый список в адаптер ресайклера ( и не забудь о notify...)
Лайвдата это лишь для примера, если у тебя асинхронная работа во вью то ничего не мешает сразу там обновлять список и так же делать notify
источник

S

Singular in Android Developers
Кирилл
Ты неправильно реализовал getView
Поэтому он каждый раз создавал новый объект
источник

I

Ivansuper in Android Developers
Singular
Я про стандартную реализцаию говорю, без ViewHolder и без if content==null
Стандартная реализация как раз подразумевает if content==null
источник

ДН

Дмитрий Николаев... in Android Developers
Кирилл
Зачем таймер? Делай лайвдату со списком, пости в нее новый список по мере готовности элементов, а во вью обсерви ее и ставь новый список в адаптер ресайклера ( и не забудь о notify...)
так а как же про 5 секунд ?
то как работает ресайклер понисаю
про нотифай не слышал
источник

S

Singular in Android Developers
А после проверка contentView==null уже переиспользовался тот который был создан, допустим я на 20 позиции нахожусь а использовался тот который на 1
источник

К

Кирилл in Android Developers
Дмитрий Николаев
так а как же про 5 секунд ?
то как работает ресайклер понисаю
про нотифай не слышал
Лайвдата это реактивщина, те каллбек обсервера вызовется только когда ты запостишь в нее новые данные
источник