Как установить RecyclerView layoutManager из XML?
<android.support.v7.widget.RecyclerView
app:layoutManager="???"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
Как установить RecyclerView layoutManager из XML?
<android.support.v7.widget.RecyclerView
app:layoutManager="???"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
Как вы можете проверить в документе:
Имя класса диспетчера макетов, который будет использоваться.
Класс должен расширять android.support.v7.widget.RecyclerView $ LayoutManager и иметь конструктор или конструктор по умолчанию с подписью (android.content.Context, android.util.AttributeSet, int, int).
Если имя начинается с ".", Пакет приложения имеет префикс. Иначе, если имя содержит ".", Предполагается, что имя класса является полным именем класса. Иначе, имя пакета представления перезапуска (android.support.v7.widget) имеет префикс.
<android.support.v7.widget.RecyclerView
xmlns:app="http://schemas.android.com/apk/res-auto"
app:layoutManager="android.support.v7.widget.GridLayoutManager" >
С androidx вы можете использовать:
<androidx.recyclerview.widget.RecyclerView
xmlns:app="http://schemas.android.com/apk/res-auto"
app:layoutManager="androidx.recyclerview.widget.GridLayoutManager">
если вы хотите использовать его с LinearLayoutManager
<android.support.v7.widget.RecyclerView
xmlns:app="http://schemas.android.com/apk/res-auto"
app:layoutManager="android.support.v7.widget.LinearLayoutManager" >
что эквивалентно
LinearLayoutManager mLayoutManager = new LinearLayoutManager(getApplicationContext());
mRecyclerView.setLayoutManager(mLayoutManager);
И я пришел сюда в поисках версии androidx
, хотя это было довольно легко выяснить, вот она
LinearLayoutManager:
app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager"
Пример:
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/recyclerView"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager"/>
GridLayoutManager:
app:layoutManager="androidx.recyclerview.widget.GridLayoutManager"
Пример:
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/recyclerView"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
app:spanCount="2"
app:layoutManager="androidx.recyclerview.widget.GridLayoutManager"/>
Как видно из приведенных выше примеров, вы можете управлять ориентацией изнутри xml
, используя
android:orientation="vertical"
и
android:orientation="horizontal"
И установить количество столбцов для GridLayoutManager, используя
app:spanCount="2"
Наиболее распространенные из них, которые я использую:
<androidx.recyclerview.widget.RecyclerView
app:layoutManager="androidx.recyclerview.widget.GridLayoutManager"
tools:listitem="@layout/grid_item"
android:orientation="vertical" app:spanCount="3"/>
А также:
<androidx.recyclerview.widget.RecyclerView
app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager"
tools:listitem="@layout/grid_item"
android:orientation="vertical"/>
Рекомендуется установить listitem
, чтобы вы могли видеть, как он может выглядеть в предварительном просмотре редактора макетов.
Если вы хотите, чтобы порядок изменился, я думаю, что вместо этого вы должны сделать это в коде и использовать "инструменты" в XML, если вы действительно хотите что-то увидеть...
пожалуйста, посетите:
Для этого не рекомендуется использовать xml.