Android 包含列表视图的Cardview

Android 包含列表视图的Cardview,android,material-design,Android,Material Design,我使用了CardView来显示图片,我想在CardView中添加一个ListView来显示这些图片的评论。对于CardView,我使用了RecyclerView适配器,并且在片段中使用了CardView和RecyclerView。但是列表视图没有显示在CardView中 CardAdapter.java public class CardAdapter extends RecyclerView.Adapter<CardAdapter.ViewHolder> { List<Na

我使用了CardView来显示图片,我想在CardView中添加一个ListView来显示这些图片的评论。对于CardView,我使用了RecyclerView适配器,并且在片段中使用了CardView和RecyclerView。但是列表视图没有显示在CardView中

CardAdapter.java

public class CardAdapter extends RecyclerView.Adapter<CardAdapter.ViewHolder> {

List<NatureItem> mItems;

public CardAdapter() {
    super();
    mItems = new ArrayList<NatureItem>();
    NatureItem nature = new NatureItem();
    nature.setName("The Great Barrier Reef");
    nature.setDes("Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt" +
                  "ut labore et dolore magna aliqua. Ut enim ad minim veniam.");
    nature.setThumbnail(R.drawable.great_barrier_reef);
    mItems.add(nature);

    nature = new NatureItem();
    nature.setName("Grand Canyon");
    nature.setDes("Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt" +
            "ut labore et dolore magna aliqua.");
    nature.setThumbnail(R.drawable.grand_canyon);
    mItems.add(nature);

    nature = new NatureItem();
    nature.setName("Baltoro Glacier");
    nature.setDes("Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt" +
            "ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis.");
    nature.setThumbnail(R.drawable.baltoro_glacier);
    mItems.add(nature);

    nature = new NatureItem();
    nature.setName("Aurora Borealis");
    nature.setDes("Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt" +
                  "ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud.");
    nature.setThumbnail(R.drawable.aurora_borealis);
    mItems.add(nature);
}

@Override
public ViewHolder onCreateViewHolder(ViewGroup viewGroup, int i) {
    View v = LayoutInflater.from(viewGroup.getContext())
            .inflate(R.layout.cardview, viewGroup, false);
    ViewHolder viewHolder = new ViewHolder(v);
    return viewHolder;
}

@Override
public void onBindViewHolder(ViewHolder viewHolder, int i) {
    NatureItem nature = mItems.get(i);
    viewHolder.tvNature.setText(nature.getName());
    viewHolder.tvDesNature.setText(nature.getDes());
    viewHolder.imgThumbnail.setImageResource(nature.getThumbnail());
}

@Override
public int getItemCount() {
    return mItems.size();
}

class ViewHolder extends RecyclerView.ViewHolder{

    public ImageView imgThumbnail;
    public TextView tvNature;
    public TextView tvDesNature;
    public ListView listView;

    public ViewHolder(View itemView) {
        super(itemView);
        imgThumbnail = (ImageView)itemView.findViewById(R.id.img_thumbnail);
        tvNature = (TextView)itemView.findViewById(R.id.tv_nature);
        tvDesNature = (TextView)itemView.findViewById(R.id.desc);
        listView = (ListView)itemView.findViewById(R.id.list);
    }
}
公共类CardAdapter扩展了RecyclerView.Adapter{ 列出螨类; 公共卡适配器(){ 超级(); mItems=新的ArrayList(); NatureItem nature=新的NatureItem(); 自然。设定名称(“大堡礁”); 《自然》一书(“知识产权”是一种权利,是一种权利,是一种权利,是一种权利。”+ “我们的劳动和生活是巨大的,我们的生活是微小的。”); 自然。珊瑚礁(R.可拉深。大堡礁); 添加(自然); nature=新的NatureItem(); 自然。设定名称(“大峡谷”); 《自然》一书(“知识产权”是一种权利,是一种权利,是一种权利,是一种权利。”+ “我们的劳动和财富是巨大的。”; 自然。设置缩略图(R.可绘制。大峡谷); 添加(自然); nature=新的NatureItem(); 自然。设定名称(“巴尔托罗冰川”); 《自然》一书(“知识产权”是一种权利,是一种权利,是一种权利,是一种权利。”+ “我们的劳动和生活是巨大的,我们的生活是微小的。”); 自然。Set缩略图(R.drawable.baltoro_冰川); 添加(自然); nature=新的NatureItem(); 自然。设定名称(“北极光”); 《自然》一书(“知识产权”是一种权利,是一种权利,是一种权利,是一种权利。”+ “我们的劳动和生活是巨大的,我们的生活是微小的,我们的生活是美好的。”); 自然光(R.drawable.aurora_borealis); 添加(自然); } @凌驾 公共视图持有者onCreateViewHolder(视图组视图组,int i){ 视图v=LayoutInflater.from(viewGroup.getContext()) .充气(R.layout.cardview、viewGroup、false); 视窗夹持器视窗夹持器=新视窗夹持器(v); 返回视图持有者; } @凌驾 公共无效onBindViewHolder(ViewHolder ViewHolder,int i){ NatureItem nature=mItems.get(i); viewHolder.tvNature.setText(nature.getName()); viewHolder.tvDesNature.setText(nature.getDes()); viewHolder.imgThumbnail.setImageResource(nature.getThumbnail()); } @凌驾 public int getItemCount(){ 返回mItems.size(); } 类ViewHolder扩展了RecyclerView.ViewHolder{ 公共图像查看imgthumbail; 公共文本视图性质; 公共文本视图; 公共列表视图列表视图; 公共视图持有者(视图项视图){ 超级(项目视图); imgThumbnail=(ImageView)itemView.findViewById(R.id.img_缩略图); tvNature=(TextView)itemView.findViewById(R.id.tv\u nature); tvDesNature=(TextView)itemView.findViewById(R.id.desc); listView=(listView)itemView.findViewById(R.id.list); } } }

以及cardview.xml

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

<android.support.v7.widget.CardView
    android:layout_width="fill_parent"
    android:layout_height="300dp"
    card_view:cardCornerRadius="3dp"
    android:layout_marginTop="9dp"
    android:layout_marginLeft="9dp"
    android:layout_marginRight="9dp"
    card_view:cardElevation="0.01dp"
    android:layout_marginBottom="0dp">
    <RelativeLayout
        android:id="@+id/top_layout"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content">

        <ImageView
            android:id="@+id/img_thumbnail"
            android:layout_width="fill_parent"
            android:layout_height="200dp"
            android:scaleType="fitXY" />
        <TextView
            android:id="@+id/tv_nature"
            android:layout_width="match_parent"
            android:layout_height="40dp"
            android:paddingLeft="@dimen/activity_horizontal_margin"
            android:paddingRight="@dimen/activity_horizontal_margin"
            android:layout_gravity="bottom"
            android:gravity="center_vertical"
            android:background="#5c1b1b1b"
            android:alpha="0.8"
            android:textColor="#fff"
            android:textSize="19sp"
            android:text="Test"
            android:layout_alignBottom="@+id/img_thumbnail"
            android:layout_alignParentLeft="true"
            android:layout_alignParentStart="true" />


        <TextView
            android:id="@+id/desc"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:paddingLeft="@dimen/activity_horizontal_margin"
            android:paddingRight="@dimen/activity_horizontal_margin"
            android:paddingTop="5dp"
            android:paddingBottom="2dp"
            android:alpha="0.8"
            android:textColor="#ff272727"
            android:textSize="12dp"
            android:text="Test Test Test Test Test Test Test Test Test Test Test Test Test"
            android:layout_below="@+id/tv_nature"
            android:layout_alignParentLeft="true"
            android:layout_alignParentStart="true"
            android:layout_above="@+id/btn_like" />

<Button android:layout_width="110dp"
    android:layout_height="30dp"
    android:text="LIKE"
    android:id="@+id/btn_like"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:layout_below="@+id/img_thumbnail"
    android:textColor="#ffffff"
    android:background="#1976D2" />

        <Button android:layout_width="150dp"
            android:layout_height="30dp"
            android:textColor="#ffffff"
            android:background="#1976D2"
            android:layout_below="@+id/img_thumbnail"
            android:layout_toRightOf="@+id/btn_like"
            android:layout_toEndOf="@+id/btn_like"
            android:layout_marginLeft="7dp"
            android:text="COMMENT"
            android:id="@+id/btn_comment"
            />

        <Button
            android:layout_width="110dp"
            android:layout_height="30dp"
            android:text="VIEWS"
            android:textColor="#ffffff"
            android:background="#1976D2"
            android:id="@+id/btn_view"
            android:layout_below="@+id/img_thumbnail"
            android:layout_toRightOf="@+id/btn_comment"
            android:layout_toEndOf="@+id/btn_comment"
            android:layout_marginLeft="7dp"
            android:paddingRight="@dimen/activity_horizontal_margin"/>

    </RelativeLayout>

    <ListView
        android:id = "@+id/list"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_below="@+id/top_layout"

        />

</android.support.v7.widget.CardView>

如果有人能提供解决方案。。
谢谢

您是否尝试将listView包装为相对布局?然而,如果我没弄错的话,那么你的卡片就是一排的回收者视图?将一个listView放在另一个listView(或recyclerview)中会很痛苦。也许重新考虑一下设计。你需要提供一些代码,因为它可能是导致它不显示的原因。它不显示是因为你不能将一个可滚动视图添加到另一个视图中。您的解决方案将不起作用,您应该考虑另一种方法。您可以在cardview中使用recyclerview,而不是listview。检查这个答案