当我将RecyclerView添加到布局中时,它显示为一个空白屏幕。是否有一种方法(例如通过工具名称空间)来显示RecyclerView内容的预览?


当前回答

从Android Studio 1.3.1开始,它会在预览中显示默认的列表项,但还不能让你自己指定。希望它会到来。

其他回答

@oRRs是对的!

我使用Android Studio 1.4 RC2,你现在可以指定任何自定义布局。

我尝试了一个自定义CardView,它工作。

tools:listitem="@android:layout/simple_list_item_checked"

从Android Studio 1.3.1开始,它会在预览中显示默认的列表项,但还不能让你自己指定。希望它会到来。

首先,在你的项目XML中添加以下一行,在你编辑项目时预览你的列表:

tools:showIn="@layout/activity_my_recyclerview_item"

然后,在你的RecyclerView XML中添加以下一行来预览你的项目将如何在你的列表中显示:

tools:listitem="@layout/adapter_item"

Android工具和LayoutManager

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/* resources轻松可视化布局结构

<?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>

模拟结果:

如果你已经有了custom_item布局:

<androidx.recyclerview.widget.RecyclerView
             android:id="@+id/recyclerView"
             ...
             ...
             **tools:listitem="@layout/name_of_your_custom_item_view"**
             ...>
</androidx.recyclerview.widget.RecyclerView>