I am using a header for a Listview. ListView header has three columns. Say a,b,c. I am using two LinearLayouts to design ListView header as shown below:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="40dip"
android:padding="0dip">
<LinearLayout
android:orientation="horizontal"
android:background="#1e90ff"
android:layout_width="0dip"
android:layout_weight="1"
android:padding="5dip"
android:layout_height="40dip">
<TextView
android:id="@+id/a"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:textColor="#000000"
android:layout_weight="1"
android:gravity="center_vertical"
android:text="@string/a"
/>
<TextView
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:textColor="#000000"
android:layout_weight="1"
android:gravity="center_vertical"
android:id="@+id/b"
android:singleLine="true"
android:text="@string/b"
/>
<TextView
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:textColor="#000000"
android:layout_weight="1"
android:gravity="center_vertical"
android:id="@+id/c"
android:singleLine="true"
android:text="@string/c"
/>
</LinearLayout>
</LinearLayout>
Now i want to fix the width of columns a, b, c respectively. How to set width of these columns ? Again, is it a good practise to use LinearLayout for this ? Please Advise.
To change the layout_width of your textviews to a fixed width use:
android:layout_width="40dip"
Or of you want them to take up percentages of the screen change the layout_weight
android:layout_weight="2"
In android the weight of all elements within another one (such as your linear layout here) will be added together and then using the weight of each view to define how much space it takes. I.E. if you had the weights as 2,3,5 for a,b,c respectively, then a would be 20% wide, b 30% wide and c 50% wide.
If you want columns, you should consider using a table layout (tutorial)
you can also set the width in percentage as follow
<LinearLayout
android:orientation="horizontal"
android:background="#1e90ff"
android:layout_width="0dip"
android:layout_weight="1"
android:padding="5dip"
android:layout_height="40dip">
<!--
android:layout_weight="0.5" <= it will set the 50 % width of screen
-->
<TextView
android:id="@+id/a"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:textColor="#000000"
android:layout_weight="0.5"
android:gravity="center_vertical"
android:text="@string/a"
/>
<TextView
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:textColor="#000000"
android:layout_weight="0.5"
android:gravity="center_vertical"
android:id="@+id/b"
android:singleLine="true"
android:text="@string/b"
/>
</LinearLayout>
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With