左对齐文本,右对齐复选框

新手上路,请多包涵

我正在尝试为 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 许可协议

阅读 923
2 个回答

由于您已经在使用 RelativeLayout,因此请使用它的属性:

从子项中删除 android:gravity 并将它们替换为 android:layout_alignParentLeft="true" 用于 TextView 和 android:layout_alignParentRight="true" 用于 CheckBox。

这将孩子相对于父母边界定位。您可能还想向每个子项添加 android:layout_centerVertical="true" 以使每个列表项中的两个垂直居中。

有关更多选项和属性,请参阅 文档

原文由 user658042 发布,翻译遵循 CC BY-SA 3.0 许可协议

使用 match_parent for layout_width 和 android:layoutDirection="rtl" 就足够了:

 <android.support.v7.widget.AppCompatCheckBox
        android:id="@+id/taxDevRadioButton"
        android:layout_width="match_parent"
        android:layoutDirection="rtl"
        android:layout_height="wrap_content"
        android:layout_below="@+id/divider2"
        android:layout_marginTop="10dp"
        android:text="ELIGIBLE FOR TAX" />

原文由 Ojonugwa Jude Ochalifu 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
logo
Stack Overflow 翻译
子站问答
访问
宣传栏