Android : Somehow the columnspan on layout element doesn't work (GridLayout)

on Wednesday, September 17, 2014


I have a GridLayout (4 columns, unlimited rows) with a bunch of Grid entries all being a RelativeLayout filled with views. Those RelativeLayouts should be 1, 2 or 3 columns wide. Somehow the entries all show in full width and even stack each other! Below are my (stripped) XML files:


The Grid:



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


With it's style:



<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>


A Grid entry XML (full):



<?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>


Another:



<?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>


And the TextView style:



<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>

0 comments:

Post a Comment