Есть ли способ показать предварительный просмотр содержимого RecyclerView как Grid в редакторе Android Studio?

Когда я добавляю RecyclerView в макет, он отображается в виде списка в вертикальном порядке. Для этого я использую tools:listitem. Есть ли способ, чтобы он отображался как сетка, но не как список в редакторе Android Studio?

Ответ 1

Вы можете создать предварительный просмотр, используя пространство имен xmlns:tools="http://schemas.android.com/tools".

<!-- AndroidX -->
<androidx.recyclerview.widget.RecyclerView
    tools:layoutManager="androidx.recyclerview.widget.GridLayoutManager"

<!-- support -->
<android.support.v7.widget.RecyclerView
    tools:layoutManager="android.support.v7.widget.GridLayoutManager"

    <!-- common -->
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:itemCount="5"
    tools:listitem="@layout/item"
    tools:orientation="horizontal"
    tools:scrollbars="horizontal"
    tools:spanCount="2" />

Из Android studio 3.0 вы можете предварительно определить данные через tools:text в item.xml

<TextView xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_margin="10dp"
    tools:text="@tools:sample/last_names"
    tools:textColor="@android:color/white" />

В результате ваш предварительный просмотр будет выглядеть как

Подробнее здесь

Ответ 2

Если вы хотите увидеть эффект только в предпросмотре без изменения поведения приложения, вы можете использовать пространство имен "tools", как вы это делали с listitem:

<android.support.v7.widget.RecyclerView
        android:id="@+id/rcv_collection"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        tools:layoutManager="android.support.v7.widget.GridLayoutManager"
        tools:spanCount="2"
        tools:listitem="@layout/item_collection"/>

Ответ 3

Чтобы отобразить список по горизонтали в режиме предварительного просмотра, просто используйте эти два атрибута

tools:orientation="horizontal"
tools:layoutManager="android.support.v7.widget.LinearLayoutManager"

здесь окончательный код

<android.support.v7.widget.RecyclerView
        ...
        tools:listitem="@layout/single_item_layout"
        tools:orientation="horizontal"
        tools:layoutManager="android.support.v7.widget.LinearLayoutManager"/>

Ответ 4

Используйте

app:layoutManager="GridLayoutManager"
app:spanCount="3"
tools:listitem="@layout/table_grid_item"