将复选框对齐LinearLayout android中的右侧

时间:2015-08-13 13:25:19

标签: android android-layout android-linearlayout

我正在尝试使用LinearLayout中的复选框创建一些文本视图。我想得到这样的结果:

TextView           Ckeckbox
TextViewwwwww      Ckeckbox
TextV              Ckeckbox

但目前我有这个:

TextView  Checkbox
TextViewwwww  Checkbox
TextView  Checkbox

这是我的xml:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:layout_alignParentTop="true"
    android:orientation="horizontal">

  <TextView
    android:id="@+id/itemTitle"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"/>
 <CheckBox
        android:id="@+id/checkItem"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentRight="true"
        android:layout_alignParentEnd="true" />
</LinearLayout>

这个xml给了我同样的结果:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:layout_alignParentTop="true"
    android:orientation="horizontal">

  <TextView
    android:id="@+id/itemTitle"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:gravity="start"/>
 <CheckBox
        android:id="@+id/checkItem"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:gravity="end"/>
</LinearLayout>

6 个答案:

答案 0 :(得分:6)

您只能使用/usr/bin/docker上的layout_weight属性自动指定TextView以填充TextView不占用的任何空间。例如,以下内容将您的复选框设置为结尾(前提是它们没有与之关联的文本),然后让TextView填充其余的布局。

CheckBox

此外,您应该使用<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_alignParentTop="true" android:orientation="horizontal"> <TextView android:id="@+id/itemTitle" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" /> <CheckBox android:id="@+id/checkItem" android:layout_width="wrap_content" android:layout_height="wrap_content" /> </LinearLayout> 代替match_parent,因为fill_parent已被弃用。

答案 1 :(得分:1)

试试这个:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context="com.example.ipdemo.MainActivity" >

<LinearLayout
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal" >

    <TextView
        android:id="@+id/itemTitle"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:text="TextView" />

    <CheckBox
        android:id="@+id/checkItem"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_weight="1" />
</LinearLayout>

<LinearLayout
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal" >

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:text="TextView" />

    <CheckBox
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_weight="1" />
</LinearLayout>

 </LinearLayout>

答案 2 :(得分:0)

如果您使用的是layout_gravity="right"版面,请使用gravity="end"代替vertical

您的CheckBox标记应如下所示:

<CheckBox
    android:id="@+id/checkItem"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="right"/>

编辑:在horizontal版面上,尝试使用layout_weight="1",这样可以使两个元素都填充布局空间的一半。

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_alignParentTop="true"
    android:orientation="horizontal">

  <TextView
    android:id="@+id/itemTitle"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_weight="1"/>
 <CheckBox
        android:id="@+id/checkItem"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_weight="1"/>
</LinearLayout>

答案 3 :(得分:0)

使用布局权重并尝试:

<?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="fill_parent"
          android:layout_alignParentTop="true"
          android:orientation="horizontal"
          android:weightSum="5">

    <TextView
      android:id="@+id/itemTitle"
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:layout_weight="1"
      android:text="wdjhwdjwo"/>

    <CheckBox
      android:id="@+id/checkItem"
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:layout_weight="4"/>
</LinearLayout>

答案 4 :(得分:0)

您应该使用 layout_weight 属性来实现效果

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="horizontal">

    <TextView
    android:id="@+id/itemTitle"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content" 
    android:layout_weight="1" />

    <CheckBox
    android:id="@+id/checkItem"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_weight="1" />
</LinearLayout>

因此水平两个视图占据屏幕大小的一半。您可以调整layout_weight以获得所需的结果。

可能有其他方法可以做到这一点,但我认为这种方法是最好的方法。

答案 5 :(得分:0)

检查以下使用android:layout_weight =&#34; 1&#34;在两个视图中

<?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="fill_parent"
    android:layout_alignParentTop="true"
    android:orientation="horizontal">

  <TextView
    android:id="@+id/itemTitle"
    android:layout_width="fill_parent"

    android:layout_weight="1"
    android:layout_height="wrap_content"
    />
 <CheckBox
        android:id="@+id/checkItem"
        android:layout_width="fill_parent"

          android:layout_weight="1"
        android:layout_height="wrap_content"
        />
</LinearLayout>