LQRRecyclerView — это компонент, который упрощает использование RecyclerView.
Как известно, RecyclerView обладает мощными функциями: достаточно задать различные LayoutManager, чтобы реализовать ListView, GridView и StaggeredGridLayoutManager. Однако в реальных проектах при каждом использовании необходимо создавать и настраивать LayoutManager, что может показаться несколько обременительным. Кроме того, рисование разделительных линий также вызывает затруднения у разработчиков. Поэтому данный компонент оптимизирует RecyclerView для решения этих двух проблем, позволяя настроить его с помощью всего одной строки кода.
Например:
<com.lqr.recyclerview.LQRRecyclerView
android:id="@+id/rv"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:rv_divider_color="#f00" // Устанавливает цвет разделительной линии (можно также установить изображение разделительной линии)
app:rv_divider_size="10dp" // Задаёт размер разделительной линии
app:rv_orientation="vertical" // Определяет направление списка
app:rv_default_animator_open="true" // Включает или выключает анимацию локального обновления (по умолчанию выключено)
app:rv_type="grid"/> // Выбирает тип списка (список/сетка, каскадный поток)
compile 'com.lqr.recyclerview:library:1.0.2'
*LinearLayoutManager и GridLayoutManager могут выполнять одни и те же функции, поэтому этот проект исключает опцию «list».
①xml-способ (три варианта на выбор: grid, stagger)
app:rv_type=""
②программный способ (три варианта: TYPE_GRID, TYPE_STAGGER)
mRv.setType(LQRRecyclerView.TYPE_XX);
①xml-способ (два варианта: vertical, horizontal)
app:rv_orientation=""
②программный способ (два варианта: ORIENTATION_VERTICAL, ORIENTATION_HORIZONTAL)
mRv.setOrientation(LQRRecyclerView.XX);
①xml-способ
app:rv_column="2"
②программный способ
mRv.setColumn(2);
①xml-способ
app:rv_divider_color="#f00"
app:rv_divider_size="10dp"
②программный способ
mRv.setDividerColor();
mRv.setDividerSize();
①xml-способ
app:rv_divider_drawable="@mipmap/ic_launcher"
app:rv_divider_size="10dp"
②программный способ
mRv.setDividerDrawable();
mRv.setDividerSize();
*В большинстве случаев анимация элементов не требуется во время разработки, поэтому по умолчанию она отключена (false). Обратите внимание, если ваш проект использует пользовательскую анимацию элементов, вам нужно включить эту функцию!
①xml-способ
app:rv_default_animator_open="true"
②программный способ
// Включить анимацию по умолчанию
mRv.openDefaultAnimator();
// Отключить анимацию по умолчанию
mRv.loseDefaultAnimator();
Ниже приведены эффекты включения и выключения app:rv_default_animator_open = "true".
*Используя встроенные методы smoothScrollToPosition и scrollToPosition в RecyclerView, можно избежать перемещения соответствующего элемента наверх. Следующие методы решают эту проблему.
Перемещение:
mRv.moveToPosition(position);
Плавное перемещение:
mRv.smoothMoveToPosition(position);
Поскольку этот компонент уже отслеживает прокрутку RecyclerView для реализации плавного перемещения и перемещения элемента наверх, для отслеживания событий прокрутки необходимо использовать следующий интерфейс: OnScrollListenerExtension.
mRv.setOnScrollListenerExtension(new OnScrollListenerExtension...);
Дополнительные сведения см. в проекте LqrRecyclerViewDemo.
Эффект:
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )