首页 > 解决方案 > Android:没有显示 RecyclerView 的 CardView

问题描述

我将 CardView 与 RecyclerView 一起使用。Crads 没有显示在 RecyclerView 中。

这是我的 CardView xml 代码 post_list_row_caption.xml :

<?xml version="1.0" encoding="utf-8"?>
<androidx.cardview.widget.CardView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/cardView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="10dp"
app:cardCornerRadius="6dp"
app:cardElevation="4dp"
android:clickable="true"
android:focusable="true"
android:foreground="?android:attr/selectableItemBackground">

<RelativeLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content">

    <TextView
        android:id="@+id/caption"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_below="@+id/imageView5"
        android:layout_alignParentLeft="true" />

    <ImageView
        android:id="@+id/imageView5"
        android:layout_width="30dp"
        android:layout_height="30dp"
        android:scaleType="centerCrop"
        android:adjustViewBounds="true"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true"
        app:srcCompat="@drawable/personpicture" />

    <TextView
        android:id="@+id/padding"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textStyle="bold"
        android:layout_toRightOf="@+id/imageView5"
        />

    <TextView
        android:id="@+id/name"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textStyle="bold"
        android:layout_toRightOf="@+id/padding"
        />

    <Button
        android:id="@+id/Button7"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Like"
        android:layout_below="@+id/caption"
        android:layout_alignParentLeft="true" />

    <TextView
        android:id="@+id/likecount"
        android:layout_width="wrap_content"
        android:layout_height="50dp"
        android:layout_below="@+id/caption"
        android:layout_toRightOf="@+id/textView3"
        />

    <TextView
        android:id="@+id/textView3"
        android:layout_width="20dp"
        android:layout_height="50dp"
        android:layout_toRightOf="@+id/Button7"
        android:layout_below="@+id/caption"/>

    <TextView
        android:id="@+id/textView4"
        android:layout_width="50dp"
        android:layout_height="50dp"
        android:layout_alignParentLeft="true"
        android:layout_below="@+id/Button7"/>

    <EditText
        android:id="@+id/editText"
        android:layout_width="250dp"
        android:layout_height="wrap_content"
        android:hint="Add a comment"
        android:layout_toRightOf="@+id/textView4"
        android:layout_below="@+id/likecount"/>

    <Button
        android:id="@+id/Button8"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Post"
        android:layout_toRightOf="@+id/editText"
        android:layout_below="@+id/likecount"/>

    <Button
        android:id="@+id/Button9"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Show all comments"
        android:layout_alignParentLeft="true"
        android:layout_below="@+id/editText"/>

    <androidx.recyclerview.widget.RecyclerView
        android:id="@+id/recycler_view"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_below="@+id/Button9" />

</RelativeLayout>

这是我的 RecyclerView 代码:

public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
    View itemView;

    if (viewType == TYPE_IMAGE) {
        itemView = LayoutInflater.from(parent.getContext())
                .inflate(R.layout.post_list_row, parent, false);

        return new ImageViewHolder(itemView);
    } else if (viewType == TYPE_VIDEO) {
        itemView = LayoutInflater.from(parent.getContext())
                .inflate(R.layout.post_list_video_row, parent, false);

        return new VideoViewHolder(itemView);
    } else {
        itemView = LayoutInflater.from(parent.getContext())
                .inflate(R.layout.post_list_row_caption, parent, false);

        return new CaptionViewHolder(itemView);
    }
}

我附上了我的模拟器的屏幕截图,显示 cardView 不工作。模拟器截图

从截图中可以看出,卡片是不可见的,Recyclerview 只包含RelativeLayouts 的列表。有什么问题?

标签: android

解决方案


推荐阅读