在 LinearLayout 中显示 CardView 的两列

pro*_*rub 1 xml android-layout android-linearlayout android-cardview android-recyclerview

我试图从我的数据库中获取 3 组对象,我想以这样的方式显示它们:

但它只是把它们放在一个地方而不是分散开,见这里:

我猜卡片视图彼此重叠并且全部停留在一个地方而不是去可用区域。

我使用 LinearLayout 作为代码:

<?xml version="1.0" encoding="utf-8"?>
   <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_height="match_parent"
    android:layout_width="match_parent"
    android:orientation="vertical"
    android:weightSum="2"
    >
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="horizontal"
        android:weightSum="2">

        <android.support.v7.widget.CardView
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_marginBottom="20dp"
            android:layout_weight="1"
            android:layout_gravity="left">
            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:orientation="vertical">
                <ImageView
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:src="@drawable/ic_addimage"
                    android:id="@+id/itemImage"
                    android:scaleType="fitCenter"
                    android:padding="2dp"
                    android:adjustViewBounds="true" />'
                <TextView
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:text="Item name"
                    android:paddingLeft="15dp"
                    android:paddingRight="15dp"
                    android:paddingTop="5dp"
                    android:textSize="20dp"
                    android:textStyle="bold"
                    android:id="@+id/itemName"/>
                <TextView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="Price"
                    android:textStyle="normal"
                    android:paddingTop="3dp"
                    android:paddingLeft="15dp"
                    android:paddingRight="15dp"
                    android:paddingBottom="10dp"
                    android:id="@+id/itemPrice"/>
            </LinearLayout>
        </android.support.v7.widget.CardView>
    </LinearLayout>
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)

小智 5

您不能从 XML 端这样做,当您使用gridlayoutmanager这样的方式从适配器加载项目时,您必须这样做

在片段中:

GridLayoutManager mLayoutManager = new GridLayoutManager(getActivity(),2);
 recyclerView.setLayoutManager(mLayoutManager);
Run Code Online (Sandbox Code Playgroud)