Чи є спосіб показати попередній перегляд вмісту RecyclerView в редакторі Android Studio?


296

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

Відповіді:


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_ prove"
Філіп Девід

2
чи є спосіб попереднього перегляду в режимі сітки?

27
@sajad спробуйте це додаток: layoutManager = "GridLayoutManager" інструменти: listitem = "@ layout / layout_list_item_select_seat" app: spanCount = "5"
atabouraya

4
Якщо ви також хочете встановити орієнтацію на горизонтальну, ви можете:tools:orientation="horizontal"
андроїд розробник

3
На додаток до специфікації tools:orientation="horizontal"або android:orientation="horizontal"я також повинен був вказати , app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager"як на stackoverflow.com/questions/35681433 / ...
Michael Osofsky

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>

Результати:


2
Це слід позначити як відповідь, оскільки воно детальне та сумісне з RecylerView. Список ListView зараз не використовується.
Абхінав Саксена

Мені довелося перейти на меншу вкладку атрибутів в області атрибутів, щоб мати можливість бачити listitemпараметр, я міг просто просто ввести його в код xml!
Джордж Удосен

1
Якщо ви використовуєте свій власний макет елемента списку, і ви бачите лише один (1) елемент списку, перевірте, що layout_height = "wrap_content" у вашому макеті.
Джеффрі

1
Між іншим, він працює для мене лише в тому випадку, якщо я використовую ListView, але не з RecyclerView. Будь-які ідеї¿? Я копіюю вставлені, щоб бути впевненим, що я не зіпсував речі зі своїм RecyclerView. Але насправді це працює, тому це дійсний XML.
xarlymg89

"@tools: sample / *" - це тип резервуара, який ви можете вводити у свої макети. 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 ви можете вибрати з декількох заздалегідь визначених макетів, наприклад: інструменти: listitem = "@ android: layout / simple_list_item_ checked". Просто натисніть RecyclerView правою кнопкою миші в редакторі макетів та виберіть "Попередній перегляд вмісту списку". На жаль, ви все ще не можете використовувати його для власних макетів, принаймні для мене це викид помилки візуалізації.
oRRs
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.