I’m trying to create a layout for a ListView, with a checkbox to the right and some text to the left. The checkbox should be aligned all the way to the right and the TextView aligned all the way to left of the row, eg:
------------------------
text checkbox
------------------------
text checkbox
------------------------
text checkbox
------------------------
This is what I have so far:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical"
android:paddingLeft="5dip"
android:paddingRight="5dip"
android:paddingTop="8dip"
android:paddingBottom="8dip"
>
<TextView
android:id="@+id/text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="left"
/>
<CheckBox
android:id="@+id/chekcbox"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="right"
/>
</RelativeLayout>
However, what actually renders is the TextBox is overlaying the checkbox, to the left of the row.
Since you are already using a RelativeLayout, make use of it’s attributes:
Remove
android:gravityfrom the children and replace them withandroid:layout_alignParentLeft="true"for the TextView andandroid:layout_alignParentRight="true"for the CheckBox.That positions the children relative to the parents borders. You may also want to add
android:layout_centerVertical="true"to each child to center the two vertical within each list item.For further options and attributes see the documentation.