Как стать автором
Обновить
1
0

Android Developer

Отправить сообщение
Знаете, за то время, что использую RecyclerView и его товарищей из support библиотеки, пришел к выводу, что cделать что-либо серьёзное на их базе — занятие весьма нетривиальное, одних умных адаптеров будет мало. Например, если взять ваше приложение с уточками на базе Epoxy и скормить его systrace, а затем просто поскролить, получим много предупреждений о 'expensive measure/layout pass' (алерты 'Long View#draw()' в счет не берем, это отдельный разговор). Казалось бы, как это исправить: напишем полностью свой LayoutManager, откажемся от CardView (есть же nine-patch и аниматоры), сами view элементов сделаем offscreen (загрузка, разметка и пр. — все через runnable и их очередь), в общем, заоптимизируем RecyclerView по полной. И всё равно в логах systrace будет всплывать алерт с тэгом 'RV OnLayout' (тут надо сказать отдельное спасибо тем парням, которые писали метод dispatchLayout, а также 1,2 и 3). Про работу с фокусом (переходы вверх, вниз и т.п.) в пределах RecyclerView вообще молчу.
ps. А за Epoxy — спасибо, годная библиотека, взял на вооружение
Кстати! Давно мучает один вопрос: почему мало кто использует RecyclerView.OnItemTouchListener как замену View.OnClickListener? Как по мне, так для простых элементов RecyclerView (три-четыре действия) самое то. Плюс главное преимущество — OnItemTouchListener устанавливается на RecyclerView целиком, а не на каждый его элемент в отдельности (т.е. в onAttachedToRecyclerView/onDetachedFromRecyclerView, а не в onViewAttachedToWindow/onViewDetachedFromWindow).
Осилил, на 4-м вопросе почти сломался, а всё потому, что внимательнее быть надо, внимательнее >_<

Информация

В рейтинге
Не участвует
Работает в
Зарегистрирован
Активность

Специализация

Mobile Application Developer
Senior
Android development
Java
Kotlin