Java ANDROID:回收器视图中的多个卡片视图
请参阅下图: 如何在回收器视图中插入多个卡片视图。 或任何其他实现此目的的方法。Java ANDROID:回收器视图中的多个卡片视图,java,android,android-recyclerview,android-cardview,Java,Android,Android Recyclerview,Android Cardview,请参阅下图: 如何在回收器视图中插入多个卡片视图。 或任何其他实现此目的的方法。 必须使用回收器视图 您的xml可以这样做: <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal"> <android.su
必须使用回收器视图
您的xml可以这样做:
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<android.support.v7.widget.CardView
android:layout_width="0dp"
android:layout_weight="1"
android:layout_height="wrap_content">
</android.support.v7.widget.CardView>
<android.support.v7.widget.CardView
android:layout_width="0dp"
android:layout_weight="1"
android:layout_height="wrap_content">
</android.support.v7.widget.CardView>
</LinearLayout>
试试这个
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="match_parent"
android:layout_height="match_parent"
android:padding="8dp">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<android.support.v7.widget.CardView
android:layout_width="match_parent"
android:layout_weight="1"
android:layout_height="300dp"
android:orientation="vertical">
<ImageView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:src="@drawable/a"/>
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Huming Bird"/>
</android.support.v7.widget.CardView>
<android.support.v7.widget.CardView
android:layout_width="match_parent"
android:layout_weight="1"
android:layout_height="wrap_content">
<ImageView
android:layout_width="match_parent"
android:layout_height="300dp"
android:src="@drawable/b"/>
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Huming Bird"/>
</android.support.v7.widget.CardView>
</LinearLayout>
</LinearLayout>
我认为实现所附图片中描述的目标的正确方法是使用
GridLayoutManager
,而不是使用RecyclerView.LayoutManager
或LinearLayoutManager
我们附加在回收视图上的LayoutManager
决定列数。有3个子类
LinearLayoutManager
gridlayoutmanager
StaggedGridLayoutManager
回收视图.LayoutManager
的活动中,更改
RecyclerView.LayoutManager mLayoutManager = new LinearLayoutManger(this);
到
2是网格的跨度计数。每个项目将放置在一个跨距中,因此在回收器视图中有两列。要根据所需的列数进行动态设置,可以根据列数设置布局管理器。这是非常灵活的。具有相应布局的相同/相似代码可以在平板电脑或手机上运行
// Set the adapter
if (view instanceof RecyclerView) {
Context context = view.getContext();
RecyclerView recyclerView = (RecyclerView) view;
if (mColumnCount <= 1) {
recyclerView.setLayoutManager(new LinearLayoutManager(context));
} else {
recyclerView.setLayoutManager(new GridLayoutManager(context, mColumnCount));
}
....
}
//设置适配器
如果(查看RecyclerView的实例){
Context=view.getContext();
RecyclerView RecyclerView=(RecyclerView)视图;
如果(mColumnCount)您的意思是RecyclerView的每个项目包含2个CardView?您也可以使用grid view,或者如果每行中的卡片数量有限,则可以创建包含两张卡片的行布局。。
// Set the adapter
if (view instanceof RecyclerView) {
Context context = view.getContext();
RecyclerView recyclerView = (RecyclerView) view;
if (mColumnCount <= 1) {
recyclerView.setLayoutManager(new LinearLayoutManager(context));
} else {
recyclerView.setLayoutManager(new GridLayoutManager(context, mColumnCount));
}
....
}