Java 具有不同布局的Android RecyclerView不';行不通

Java 具有不同布局的Android RecyclerView不';行不通,java,android,android-recyclerview,Java,Android,Android Recyclerview,我正在尝试用两种不同的布局实现一个RecyclerView。在MainActivity中,我首先创建ListItem对象并将其添加到列表中,然后将其添加到适配器中,但它不显示。我还调用了一个方法,该方法创建ListItem对象并将其添加到列表中,然后通知适配器,但它仍然没有显示。以下是我目前的代码: activity_main.xml <?xml version="1.0" encoding="utf-8"?> <android.support.constraint.Const

我正在尝试用两种不同的布局实现一个
RecyclerView
。在
MainActivity
中,我首先创建
ListItem
对象并将其添加到列表中,然后将其添加到适配器中,但它不显示。我还调用了一个方法,该方法创建
ListItem
对象并将其添加到列表中,然后通知适配器,但它仍然没有显示。以下是我目前的代码:

activity_main.xml

<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context="nl.iansoft.www.recyclerviewproblem.MainActivity">

    <android.support.v7.widget.RecyclerView
        android:id="@+id/rvList"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_marginBottom="100dp"
        />

</android.support.constraint.ConstraintLayout>
my_list_item2.xml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content">

    <TextView
        android:id="@+id/tvName2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textSize="14sp"
        android:text="Name2"
        android:layout_marginTop="15dp"
        android:padding="5dp"/>

    <TextView
        android:id="@+id/tvLastName2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textSize="16sp"
        android:text="Last Name2"
        android:layout_below="@+id/tvName2"
        android:layout_marginTop="10dp"
        android:padding="5dp" />

    <TextView
        android:id="@+id/tvEmail2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textSize="14sp"
        android:text="my@email.com"
        android:layout_below="@+id/tvLastName2"
        android:layout_marginTop="5dp"
        android:padding="5dp" />

</RelativeLayout>

my_list_item.xml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content">

    <TextView
        android:id="@+id/tvName"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textSize="14sp"
        android:text="Name"
        android:layout_marginTop="15dp"
        android:padding="5dp"/>

    <TextView
        android:id="@+id/tvLastName"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textSize="16sp"
        android:text="Last Name"
        android:layout_below="@+id/tvName"
        android:layout_marginTop="10dp"
        android:padding="5dp" />

    <TextView
        android:id="@+id/tvEmail"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textSize="14sp"
        android:text="my@email.com"
        android:layout_below="@+id/tvLastName"
        android:layout_marginTop="5dp"
        android:padding="5dp" />

</RelativeLayout>

问题在
ConstraintLayout
中。因为您没有为
RecyclerView
指定任何约束

指定约束或移动到其他布局(例如,
FrameLayout


但具体来说,在这种情况下,您不需要父布局,因为它是无用的,只要您的视图层次结构中只有
RecyclerView

您可以发布
activity\u main
?@azizbekian刚才添加的。您可以将
ConstraintLayout
更改为,比如说,
FrameLayout
?@azizbekian谢谢,它可以工作!
public class ListItem {

    private String name;
    private String lastName;
    private String email;

    public ListItem() {
    }

    public ListItem(String name, String lastName, String email) {
        this.name = name;
        this.lastName = lastName;
        this.email = email;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getLastName() {
        return lastName;
    }

    public void setLastName(String lastName) {
        this.lastName = lastName;
    }

    public String getEmail() {
        return email;
    }

    public void setEmail(String email) {
        this.email = email;
    }
}
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content">

    <TextView
        android:id="@+id/tvName2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textSize="14sp"
        android:text="Name2"
        android:layout_marginTop="15dp"
        android:padding="5dp"/>

    <TextView
        android:id="@+id/tvLastName2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textSize="16sp"
        android:text="Last Name2"
        android:layout_below="@+id/tvName2"
        android:layout_marginTop="10dp"
        android:padding="5dp" />

    <TextView
        android:id="@+id/tvEmail2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textSize="14sp"
        android:text="my@email.com"
        android:layout_below="@+id/tvLastName2"
        android:layout_marginTop="5dp"
        android:padding="5dp" />

</RelativeLayout>
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content">

    <TextView
        android:id="@+id/tvName"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textSize="14sp"
        android:text="Name"
        android:layout_marginTop="15dp"
        android:padding="5dp"/>

    <TextView
        android:id="@+id/tvLastName"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textSize="16sp"
        android:text="Last Name"
        android:layout_below="@+id/tvName"
        android:layout_marginTop="10dp"
        android:padding="5dp" />

    <TextView
        android:id="@+id/tvEmail"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textSize="14sp"
        android:text="my@email.com"
        android:layout_below="@+id/tvLastName"
        android:layout_marginTop="5dp"
        android:padding="5dp" />

</RelativeLayout>