Android 包含列表视图的Cardview
我使用了CardView来显示图片,我想在CardView中添加一个ListView来显示这些图片的评论。对于CardView,我使用了RecyclerView适配器,并且在片段中使用了CardView和RecyclerView。但是列表视图没有显示在CardView中 CardAdapter.javaAndroid 包含列表视图的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
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。检查这个答案