RelativeLayout元素上的Columnspan不起作用(GridLayout),仍然获得全宽

时间:2014-09-17 10:01:52

标签: android android-layout android-xml android-gridlayout

我有一个GridLayout(4列,无限行),其中有一堆Grid项,都是一个填充了视图的RelativeLayout。那些RelativeLayouts应该是1,2或3列宽。不知何故,条目全部显示,甚至相互叠加!下面是我的(剥离的)XML文件:

网格:

<GridLayout android:id="@+id/shelve_carriers" style="@style/sport" android:orientation="horizontal" android:columnCount="4" />

用它的风格:

<style name="sport">
    <item name="android:layout_width">match_parent</item>
    <item name="android:layout_height">wrap_content</item>
    <item name="android:layout_marginTop">10dp</item>
</style>

网格条目XML(完整):

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout android:layout_columnSpan="1" android:maxWidth="175dp" android:layout_gravity="fill_horizontal" android:layout_width="175dp" android:background="@drawable/carrier_one" android:layout_height="wrap_content" android:layout_marginRight="10dp" android:minHeight="25dp" xmlns:android="http://schemas.android.com/apk/res/android">
<TextView style="@style/carrier_header" android:id="@+id/header" />
<LinearLayout android:id="@+id/carrier_orders"
              android:layout_width="160dp" android:layout_height="wrap_content" android:minHeight="25dp" android:layout_below="@id/header" android:layout_alignParentLeft="true"
              android:orientation="vertical" android:layout_gravity="fill_horizontal" android:layout_marginRight="10dp" android:padding="10dp">
</LinearLayout>
</RelativeLayout>

另:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout android:layout_width="360dp" android:background="@drawable/carrier_two" android:layout_height="wrap_content" android:layout_marginRight="10dp" android:minHeight="25dp" android:layout_columnSpan="2" xmlns:android="http://schemas.android.com/apk/res/android">
    <TextView android:id="@+id/header" style="@style/carrier_header"/>
    <LinearLayout android:id="@+id/carrier_orders"
                  android:layout_width="160dp" android:layout_height="wrap_content" android:minHeight="25dp" android:layout_below="@id/header" android:layout_alignParentLeft="true"
                  android:orientation="vertical" android:layout_gravity="fill_horizontal" android:layout_marginRight="10dp" android:padding="10dp">
    </LinearLayout>
    <LinearLayout android:id="@+id/carrier_orders2"
                  android:layout_width="160dp" android:layout_height="wrap_content" android:minHeight="25dp" android:layout_below="@id/header" android:layout_alignParentRight="true"
                  android:orientation="vertical" android:layout_gravity="fill_horizontal"  android:layout_marginLeft="10dp" android:padding="10dp">
    </LinearLayout>
</RelativeLayout>

TextView样式:

<style name="carrier_header">
    <item name="android:layout_width">match_parent</item>
    <item name="android:layout_height">wrap_content</item>
    <item name="android:background">@drawable/lijn</item>
    <item name="android:gravity">center</item>
</style>

1 个答案:

答案 0 :(得分:0)

显然它与TextView样式设置有关:

<item name="android:layout_width">match_parent</item>

使用android:layout_alignParentRight =&#34; true&#34;在子元素&#34; carrier_orders2&#34;相对布局。显然,这两个XML属性都使RelativeLayout的宽度为全宽。