Ivan
Кстати, чем плох ListView в сравнении с RecyclerView, кроме отсутствия view holder из коробки и поддержки нескольких view type? Если говоря о типичном списке однотипных элементов.
Владимир
Мужики скажите в 33 года начинать не поздно изучение языков программирования ?
Alexey
если до 40, то не надо времени терять)
Anton
Мужики скажите в 33 года начинать не поздно изучение языков программирования ?
Проблема одна, в таком возрасте всегда мало времени, которое так нужно для изучения. Если оно есть, вперед
Ivan
Ребят, подскажите как правильнее сделать. Активити подписывается на LiveData, после этого приходит какая-то порция данных. Как быть, если при перевороте и подписке снова не обрабатывать эти же данные? Мб чистить liveData или отписываться?
Ivan
Кейс такой, есть бесконечный скролл, каждый раз подтягивается по 10 записе допустим, для этого использую liveData, но и храню еще отдельно все записи в массиве. Затем происходит переворот и при подписке снова активити обрабатывает 10 последних объектов
Alexey
Кстати, чем плох ListView в сравнении с RecyclerView, кроме отсутствия view holder из коробки и поддержки нескольких view type? Если говоря о типичном списке однотипных элементов.
если небольшой список то почему бы и нет. Надо по производительности лэйаута посмотреть, может даже и лучше будет
Anonymous
Ребят, подскажите как правильнее сделать. Активити подписывается на LiveData, после этого приходит какая-то порция данных. Как быть, если при перевороте и подписке снова не обрабатывать эти же данные? Мб чистить liveData или отписываться?
LiveData вам дял чего?может я че забыл, но LiveData нужна: хранилище данных, работающее по принципу паттерна Observer (наблюдатель). Это хранилище умеет делать две вещи: 1) В него можно поместить какой-либо объект 2) На него можно подписаться и получать объекты, которые в него помещают.
Akim
А вот какие въю-компоненты не стоит пихать в recycler view, чтобы интерфейс при скролле не притормаживал?
Pavel
Кстати, чем плох ListView в сравнении с RecyclerView, кроме отсутствия view holder из коробки и поддержки нескольких view type? Если говоря о типичном списке однотипных элементов.
Сложно сделать хорошие анимации, потому что мы не говорим адаптеру какие итемы изменились в списке, listview имеет много неоднозначного апи(есть итем клик листенер на самом листвью и можно тоже самое сделать поставив его на итем Вью). Нельзя указать как расставлять итемы(кроме как вертикально или горизонтально). Ресайклервью наоборот имеет модульную архитектуру и все что нужно можно покдлючить
Anton
Кстати, чем плох ListView в сравнении с RecyclerView, кроме отсутствия view holder из коробки и поддержки нескольких view type? Если говоря о типичном списке однотипных элементов.
Ну так вы назвали сами все плюсы recyclerview. Вам мало ? Конечно можно listview использовать, но зачем если есть recyclerview ? recycler по использованию не чем не сложнее listview
Anonymous
новичков -kotlin -ecommerce -listView
Хм, ну тут у кого как пойдёт. Я начинал 2 года назад с коммерческим проектом, который разрабатываю и поддерживаю до сих пор. PS: с java был знаком
Ivan
Не запрашивать данные после каждой подписки, а отдавать что есть, для подгрузки отдельный метод завести
при перевороте я не начинаю грузить данные из сети по новой, я просто подписываюсь на то куда они падают и когда я это делаю они там уже есть
Ivan
если небольшой список то почему бы и нет. Надо по производительности лэйаута посмотреть, может даже и лучше будет
Однажды столкнулся с микролагами при скролле recycler view, в профайлере былт видно, что долго ведётся работа по скроллу внутри самого RecyclerView. А в ListView их не было ._.
Ivan
если однажды, то это могло быть вообще не из-за ресайклера например
Да не, именно его методы долго выполнялись. Странно, что до сих пор это не поправили.
Ivan
Что значит обрабатывать ? У вас же при перевороте умрет активити/фрагмент и будет пересоздан. Гды вы храните второй массив ?
массив хранится во ViewModel, изначально задумывалось что LiveData будет для порций, другой массив для всего того что пришло
Alexey
Да не, именно его методы долго выполнялись. Странно, что до сих пор это не поправили.
Ну ты ишшуй накатал чтобы поправили? https://source.android.com/setup/contribute/report-bugs
Ivan
обрабатывать значит что когда я подписываюсь, то сразу в активити попдает порция данных из liveData
Anton
Да не, именно его методы долго выполнялись. Странно, что до сих пор это не поправили.
Вот интересно даже как recycler с огромными списками не тормозит а на небольшом тормозит ?
Ivan
ну а какой смысл тогда грузить порциями, я хочу добавлять в адаптер по 10 записей, а не по 100 или 200 каждый раз при повороте)
Ivan
А в чем проблема отдать весь список разом если он уже у вас получен
ни в чем, допустим я так и сделаю в onCreate, отображу
Ivan
смысл то в том, что каждый раз при подписке на liveData приходят уже не нужные данные, вот я и спрашиваю как правильно сделать, чтобы они не оказывались в активити при подписке
Ivan
Вот интересно даже как recycler с огромными списками не тормозит а на небольшом тормозит ?
Тут даже не в ресайклинге дело, микролаги проявляются во время скролла, даже когда не надо ещё ресайклить. Кстати, эти микролаги есть во всех приложениях со списками (но там уже не понятно, вина ли этому сам RecyclerView или кривая реализация bind view holder)
Ivan
Привет всем. Есть у кого опыт использования RenderScript? Или может даже использования связки libavcodec + RenderScript?
Ivan
Проблема: не понимаю в каком виде надо передавать данные в RenderScript inAllication inBuffer. Пытаюсь туда засунуть буффер из AVFrame.
Ivan
Тип данных inAllocation yuv_n21
Ivan
Ivan
Anonymous
А вы каждый день занимаетесь етим
Ivan
мне эта лайвДата чисто когда скролю, понимаю что нужны данные, в нее они прилетают
Ivan
а потом экран переворачивается и она мне опять отдает эти же данные, которые уже не нужны
Anonymous
Ясно
Anonymous
🤔
V
Мы так до исходников дойдем) тут либо опишешь что происходит, либо надо весь код. Похоже у тебя весь лист хранится и ещё последние записи, тогда чисти последние и все, после того, как их в общий список добавил
Ivan
Мы так до исходников дойдем) тут либо опишешь что происходит, либо надо весь код. Похоже у тебя весь лист хранится и ещё последние записи, тогда чисти последние и все, после того, как их в общий список добавил
да много же раз писал)) есть список, где все что до этого загрузил там хранится) например 100 записей. Когда доскролил до конца, говорю вьюмодели, чтобы подгрузила еще 10 записей. Эти записи прилеьают в liveData = в активити, потому как она на нее подписана)) Потом, неожиданно, экран переворачивается, снова подписываюсь на эту лайвдату, дабы в будущем загрузить еще записи) Но при подписке она мне снова возвращщает предыдущие 10 штук)) Они мне нафиг не нужны) Как правильно делать, что бы эти записи, которые уже были добавлены в общий список, не портили мне настроение???))
Ivan
я думал чтобы очистить, в какой момент?
Ivan
livedata.value = null это тоже летит в активити
Ivan
у нее никакого колбека на отписку от нее не вижу, так бы сделал типо если отписались, то очистить. Как бы неправильно я бы давно уже сделал и сюда бы не писал, костылями какими-нибудь
Ivan
просто мб есть нормальный вариант?
Anton
просто мб есть нормальный вариант?
Да использовать инструмент готовый для такого списка
Ivan
это как?
Ivan
какой например
Anton
какой например
https://gist.github.com/Anton111111/5e4573d1710fc662b47f09538a0338fc
Ivan
это гугловский?
Ivan
https://developer.android.com/topic/libraries/architecture/paging
Ivan
вот это?
Ivan
окей, с ней реализую тогда
Anton
вот это?
Я просто сразу дал нарезку чтобы было понятно как ошибки обрабатывать
Ivan
ага, спасибо
😴
I did not understand exactly the problem
😴
Nikita
findViewById return null, maybe
Nikita
почему он в этом чате на инглише пишет? разве нет чатов на инглише?
Ferrero
Don’t use init block for this firstly
Nikita
Хз, фетиш у него такой )
Ferrero
При чем он даже не гуглит
😴
Ferrero
Perfectly
Anton
У вас переменная null ;) Это же русскоязычный чат...по этому пишу по русски ;)
😴
Perfectly
errer 😂