Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/216.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java ANDROID:回收器视图中的多个卡片视图_Java_Android_Android Recyclerview_Android Cardview - Fatal编程技术网

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));
           }
           ....
        }