Комментарии 4
Есть ли весомая разница в производительности между стандартно-простыми, как, скажем, LinearLayoutManager, и такими красиво-хитронарисованными?
Никакой весомой разницы нет.
Любой из встроенных LM так же как и наш выполняет одинаковую работу: получает view от recycler, выполняет над ней measue(), что бы view сказала, какие размеры она хотела бы иметь и на основе этих размеров и следуя своей логике размещает её на экране. При этом нашему LM даже и неважно, каким размером хочет быть эта view, т.к. мы условились, что все элементы у нас или в 3/4 высоты или в полный экран, в зависимости от ориентации.
Любой из встроенных LM так же как и наш выполняет одинаковую работу: получает view от recycler, выполняет над ней measue(), что бы view сказала, какие размеры она хотела бы иметь и на основе этих размеров и следуя своей логике размещает её на экране. При этом нашему LM даже и неважно, каким размером хочет быть эта view, т.к. мы условились, что все элементы у нас или в 3/4 высоты или в полный экран, в зависимости от ориентации.
А всё таки есть ли разница в выборе якорной вьюшки, если нет необходимости менять списку ориентацию? Если да, то когда какую лучше брать?
Можно даже вообще не использовать якорные вьюшки и SparseArray viewCache! Вот, например, как:
- Смещаем все элементы как и раньше через offsetChildrenVertically(...)
- Если смещаем вверх, то находим самый нижний элемент и, начиная от его нижней границы, заполняем свободное место. Аналогично, если смещаем вниз.
- Не забываем пройти по всем элементам и определить, каких уже не видно на экране, что бы отправить их в корзину
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Рецепты под Android: Как вкусно приготовить LayoutManager