我正在尝试为 ListView 创建一个布局,右侧有一个复选框,左侧有一些文本。复选框应该一直对齐到右边,TextView 应该一直对齐到行的左边,例如:
------------------------
text checkbox
------------------------
text checkbox
------------------------
text checkbox
------------------------
这是我到目前为止所拥有的:
<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>
但是,实际呈现的是 TextBox 将复选框覆盖在行的左侧。
原文由 Kris B 发布,翻译遵循 CC BY-SA 4.0 许可协议
由于您已经在使用 RelativeLayout,因此请使用它的属性:
从子项中删除
android:gravity
并将它们替换为android:layout_alignParentLeft="true"
用于 TextView 和android:layout_alignParentRight="true"
用于 CheckBox。这将孩子相对于父母边界定位。您可能还想向每个子项添加
android:layout_centerVertical="true"
以使每个列表项中的两个垂直居中。有关更多选项和属性,请参阅 文档。