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

296

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

nclarkclt
источник

Ответы:

642

@oRRs прав!

Я использую Android Studio 1.4 RC2, и теперь вы можете указать любой пользовательский макет.

Я попробовал пользовательский CardView, и он работает.

tools:listitem="@android:layout/simple_list_item_checked"
Филипп Давид
источник
1
См. Комментарий @oRRs: tools: listitem = "@ android: layout / simple_list_item_checked"
Филипп Дэвид
2
Есть ли способ предварительного просмотра в режиме сетки?
27
@sajad попробуйте это приложение: layoutManager = "GridLayoutManager" tools: listitem = "@ layout / layout_list_item_select_seat" app: spanCount = "5"
atabouraya
4
Если вы также хотите установить горизонтальную ориентацию, вы можете:tools:orientation="horizontal"
Android-разработчик
3
В дополнение к указанию tools:orientation="horizontal"или android:orientation="horizontal"я также должен был указать app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager"в соответствии с stackoverflow.com/questions/35681433/…
Майкл Ософски
137

tools Пространство имен включает функции времени разработки (например, какой макет показывать во фрагменте) или поведение во время компиляции (например, какой режим сжатия применяется к вашим ресурсам XML). Это действительно мощная функция, которая разрабатывается и позволяет не компилировать код каждый время увидеть изменения

AndroidX [О программе] и GridLayoutManager

implementation 'androidx.recyclerview:recyclerview:1.1.0'
<androidx.recyclerview.widget.RecyclerView
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"

    android:layout_width="match_parent"
    android:layout_height="match_parent"

    tools:layoutManager="androidx.recyclerview.widget.GridLayoutManager"
    tools:listitem="@layout/item"
    tools:itemCount="10"
    tools:orientation="vertical"
    tools:scrollbars="vertical"
    tools:spanCount="3"/>

Поддержка и LinearLayoutManager

implementation 'com.android.support:recyclerview-v7:28.0.0'

<android.support.v7.widget.RecyclerView
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"

    android:layout_width="match_parent"
    android:layout_height="wrap_content"

    tools:layoutManager="android.support.v7.widget.LinearLayoutManager"
    tools:listitem="@layout/item"
    tools:itemCount="3"
    tools:orientation="horizontal"
    tools:scrollbars="horizontal" />

Еще одна интересная функция, которая была представлена, Android studio 3.0- это предопределение данных с помощью атрибутов инструментов, чтобы легко визуализировать структуру макета с помощью @tools:sample/*ресурсов.

item.xml

<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="100dp"
    android:layout_height="150dp"
    android:layout_marginRight="15dp"
    android:layout_marginBottom="10dp"
    android:orientation="vertical"
    tools:background="@tools:sample/backgrounds/scenic">

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textColor="@color/colorWhite"
        tools:text="@tools:sample/first_names" />

</FrameLayout>

Полученные результаты:

yoAlex5
источник
2
Это должно быть помечено как ответ, так как оно детализировано и совместимо с RecylerView. ListViews в настоящее время не используются вообще.
Абхинав Саксена
Мне пришлось переключиться на меньшее количество вкладок атрибутов в области атрибутов, чтобы увидеть listitemпараметр, я мог просто ввести его в код xml!
Джордж Удосен
1
Если вы используете свой собственный макет элемента списка и видите только один (1) элемент списка, проверьте это layout_height = "wrap_content" в вашем макете.
Джеффри
1
Между прочим, это работает только для меня, если я использую ListView, но не с RecyclerView. Любые идеи? Я скопировал вставленный, чтобы убедиться, что я не испортил вещи с моим RecyclerView. Но на самом деле это работает, так что это действительный XML.
xarlymg89
«@tools: sample / *» - это тип ресурсов-резерверов для Android-ресурсов, которые вы можете вставить в свои макеты. last_names - общие фамилии. Полный официальный документ - developer.android.com/studio/write/...
yoAlex5
4

Сначала добавьте следующую строку в XML вашего элемента, чтобы сделать предварительный просмотр вашего списка во время редактирования вашего элемента:

tools:showIn="@layout/activity_my_recyclerview_item"

И они, добавьте следующую строку в ваш RecyclerView XML, чтобы просмотреть, как ваш элемент будет выглядеть в вашем списке:

tools:listitem="@layout/adapter_item"
Анджело Полотто
источник
3

Начиная с Android Studio 1.3.1, он показывает элементы списка по умолчанию в предварительном просмотре, но пока не позволяет указывать свои собственные. Надеюсь, это придет.

Габор
источник
19
В AS 1.4 вы можете выбрать один из нескольких предопределенных макетов, например: tools: listitem = "@ android: layout / simple_list_item_checked". Просто щелкните правой кнопкой мыши RecyclerView в редакторе макетов и выберите «Предварительный просмотр содержимого списка». К сожалению, вы все еще не можете использовать его для своих собственных макетов, по крайней мере для меня это вызывает ошибку рендеринга.
ОРВ