Search code examples
androidgrid-layout

"merge" rows/columns in Gridlayout in Android


I am new to Android, I am trying to using Gridlayout, but have a bit of trouble, I dont know how can i merge comlumns/rows in Gridlayout. In the code below, I try to use span, but in Description edittext, the Description column(column 0) keeps spanning and makes others column (column 1,2...) moving out of screen. How can I fix the problem ?

<GridLayout
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" xmlns:android="http://schemas.android.com/apk/res/android"
    android:columnCount="6" android:rowCount="8" android:orientation="horizontal">
<TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Create Goal"
        android:layout_columnSpan="6"
        android:gravity="center_horizontal"
        android:textSize="20dp"
        android:layout_marginTop="15dp"
        android:id="@+id/textView" android:layout_row="0" android:layout_column="0"
        android:layout_gravity="center_horizontal"/>
<TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Name"
        android:id="@+id/goalNameLb" android:layout_row="1" android:layout_column="0"
        android:textSize="15dp"
        android:layout_marginLeft="10dp"
        android:layout_marginTop="10dp"
        android:layout_marginRight="10dp"
        android:layout_gravity="fill_horizontal"/>
<EditText
        android:layout_width="wrap_content"
        android:layout_gravity="center_horizontal|left"
        android:layout_height="wrap_content"
        android:layout_columnSpan="5"
        android:layout_marginTop="10dp"
        android:layout_marginLeft="10dp"
        android:id="@+id/goalName" android:layout_row="1" android:layout_column="1"/>
<TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="fill_horizontal"
        android:text="Goal Type"
        android:textSize="15dp"
        android:layout_marginLeft="10dp"
        android:layout_marginTop="10dp"
        android:id="@+id/goalTypeLb" android:layout_row="2" android:layout_column="0"/>
<RadioButton
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Short Term"
        android:layout_columnSpan="2"
        android:layout_marginLeft="15dp"
        android:layout_marginTop="10dp"
        android:id="@+id/shortTerm" android:layout_row="3" android:layout_column="0" android:checked="false"/>
<RadioButton
        android:layout_gravity="fill_horizontal"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Long Term"
        android:layout_marginTop="10dp"
        android:layout_columnSpan="3"
        android:layout_marginLeft="40dp"
        android:id="@+id/longTerm" android:layout_row="3" android:layout_column="2"
        android:checked="false"/>

<TextView
        android:layout_gravity="fill_horizontal"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Description"
        android:layout_row="4"
        android:layout_column="0"
        android:layout_marginLeft="10dp"
        android:layout_marginTop="10dp"
        />
<EditText
        android:layout_gravity="fill_horizontal"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="10dp"
        android:layout_marginLeft="10dp"
        android:layout_marginRight="10dp"
        android:id="@+id/goalName" android:layout_row="5" android:layout_column="0"/>
<TextView
        android:layout_gravity="fill_horizontal"
        android:layout_height="wrap_content"
        android:layout_width="wrap_content"
        android:id="@+id/deadlineLb"
        android:layout_row="6"
        android:layout_column="0"
        android:layout_marginLeft="10dp"
        android:layout_marginTop="10dp"
        android:text="Deadline"
        android:textSize="15dp"
        />

</GridLayout>

Solution

  • You are using fixed values for layout design.It may cause problem for the generic view.You can use table layout.For example visit the following link. 1.Link1 2.Link2