在LinearLayout中显示CardView的两列

时间:2017-02-24 15:58:55

标签: xml android-layout android-recyclerview android-linearlayout android-cardview

我正在尝试从我的数据库中获取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>

3 个答案:

答案 0 :(得分:3)

你不能从XML那边做,你必须这样做,当你使用gridlayoutmanager像这样从适配器加载项目时

在片段中:

GridLayoutManager mLayoutManager = new GridLayoutManager(getActivity(),2);
 recyclerView.setLayoutManager(mLayoutManager);

答案 1 :(得分:1)

你不能从xml方面那样做,你必须在使用gridlayoutmanager这样从适配器加载项目时这样做

 mLayoutManager = new GridLayoutManager(this,2);
 recyclerView.setLayoutManager(mLayoutManager);

答案 2 :(得分:0)

class MyDrawerController: DrawerController {

    override func viewDidLoad() {  

        DispatchQueue.main.async {
           self.centerViewController = aViewControllerInstant 
        }

    } 

}