Android布局复选框 - 文本右对齐按钮组合

时间:2016-12-30 04:15:37

标签: android android-layout

我正在努力实现一些应该相对简单的东西,但不知何故,android布局只是在我身上处理不同的波长,我无法正确完成。

我想在左侧有一个简单的复选框,右边有一个填充中间的文本,如果我有多行文本,复选框和按钮会保持垂直居中。

我的布局和可怕的结果如下所示。关于如何实现我所描述的任何想法将不胜感激。

非常感谢

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout  xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal" android:layout_width="fill_parent"
android:layout_height="fill_parent">


<CheckBox
    android:layout_width="30dp"
    android:layout_height="wrap_content"
    android:layout_gravity="center_horizontal"
    android:id="@+id/chkEnabled" />
<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/rowText"
    android:layout_gravity="center_horizontal" />

<Button
    android:id="@+id/btnNavigate"
    android:layout_width="60dp"
    android:layout_height="30dp"

    android:layout_marginRight="2dp"
    android:text="Go"
    android:layout_gravity="right"
    android:textSize="10sp" />

</LinearLayout >

enter image description here

2 个答案:

答案 0 :(得分:1)

我建议使用线性布局的重量

android:layout_weight="1" 

或者您可以使用relativelayout并将alignparentright true设为true按钮

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


            <CheckBox
                android:layout_width="30dp"
                android:layout_height="wrap_content"
                android:layout_gravity="center_horizontal"
                android:id="@+id/chkEnabled" />
            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:id="@+id/rowText"
                android:text="this is test"
                android:layout_weight="1"

                android:gravity="center"
                android:layout_gravity="center_horizontal|center_vertical" />

            <Button
                android:id="@+id/btnNavigate"
                android:layout_width="60dp"
                android:layout_height="30dp"

                android:layout_marginRight="2dp"
                android:text="Go"
                android:layout_gravity="right"
                android:textSize="10sp" />

        </LinearLayout >

<强>输出

enter image description here

答案 1 :(得分:0)

如果你想要复选框和按钮保持垂直居中而不是layout_gravity =&#34; center_vertical&#34;

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="5"
android:gravity="center_vertical"
android:orientation="horizontal">
<CheckBox
    android:id="@+id/chkEnabled"
    android:layout_width="0dp"
    android:layout_height="wrap_content"
    android:layout_weight="0.5"/>
<TextView
    android:id="@+id/rowText"
    android:layout_width="0dp"
    android:layout_height="wrap_content"
    android:layout_weight="3.5"
    android:text="here is your text"/>
<Button
    android:id="@+id/btnNavigate"
    android:layout_width="0dp"
    android:layout_height="wrap_content"
    android:layout_marginRight="2dp"
    android:layout_weight="1"
    android:text="Go"
    android:textSize="10sp"/>

相关问题