在布局的右侧和中间放置一个按钮

时间:2014-03-30 06:56:13

标签: android

如果我在xml中有如下布局

<RelativeLayout
   <LinearLayout
        android:id="@+id/linearLayout1"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_toLeftOf="@+id/bFb"
        android:orientation="vertical" >

        <EditText
            android:id="@+id/etUserName"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            />

        <EditText
            android:id="@+id/etPass"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:inputType="textPassword"
            />

        <Button
            android:id="@+id/bLogin"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Login" />
    </LinearLayout>
    <Button                       //This is the button on question
        android:id="@+id/bFb"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_toRightOf="@+id/linearLayout1"
        android:text="Button" /> 

//there are more stuffs here below the linear layout
</RelativeLayout>

如何将线性布局右侧的按钮与线性布局的中间对齐?我不希望按钮边框拉伸整个线性布局,只是线性布局的中间

谢谢

1 个答案:

答案 0 :(得分:2)

您可以通过将RelativeLayout更改为LinearLayout并为其第一个孩子提供weight来实现您想要的目标

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal" >
    <LinearLayout
        android:id="@+id/linearLayout1"
        android:layout_width="0dp"
        android:layout_weight="1"
        android:layout_height="wrap_content"
        android:orientation="vertical" >
        <EditText
            android:id="@+id/etUserName"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content" />
        <EditText
            android:id="@+id/etPass"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:inputType="textPassword" />
        <Button
            android:id="@+id/bLogin"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Login" />
    </LinearLayout>
    <Button
        android:id="@+id/bFb"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center_vertical"
        android:text="Button" />
</LinearLayout>

哪个会生成此enter image description here

修改
您可以通过相对布局来实现它

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal" >
    <LinearLayout
        android:id="@+id/linearLayout1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:orientation="vertical" >
        <EditText
            android:id="@+id/etUserName"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content" />
        <EditText
            android:id="@+id/etPass"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:inputType="textPassword" />
        <Button
            android:id="@+id/bLogin"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Login" />
    </LinearLayout>
        <LinearLayout
        android:id="@+id/linearLayout2"
        android:layout_width="wrap_content"
        android:layout_height="match_parent"
        android:orientation="horizontal"
        android:layout_toRightOf="@id/linearLayout1" >
        <Button
            android:id="@+id/bFb"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center_vertical"
            android:text="Button" />
    </LinearLayout>
</RelativeLayout>

但它需要一些tweek来生成完全相同的东西,在我看来,LinearLayout的重量在你的情况下更好,所以如果我在你的鞋子我选择LinearLayout解决方案并将其包装在RelativeLayout