0

我有登录屏幕,我想将按钮居中,所以我使用了 android:layout_centerHorizontal="true"

布局xml是

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:layout_centerHorizontal="true"
    android:background="#DDDDDD"
    android:gravity="center_vertical|center_horizontal" >

    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerInParent="true"
        android:background="@drawable/loginlayoutborders"
        android:orientation="vertical" >

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

            <TextView
                android:id="@+id/tv_url"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="URL:             "
                android:textColor="#444444"
                android:textSize="10pt" />

            <EditText
                android:id="@+id/et_url"
                android:layout_width="400dip"
                android:layout_height="50dip"
                android:layout_toRightOf="@id/tv_url"
                android:background="@android:drawable/editbox_background" />
        </LinearLayout>

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

            <TextView
                android:id="@+id/tv_un"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="User Name:"
                android:textColor="#444444"
                android:textSize="10pt" />

            <EditText
                android:id="@+id/et_un"
                android:layout_width="400dip"
                android:layout_height="50dip"
                android:layout_alignTop="@id/tv_un"
                android:layout_toRightOf="@id/tv_un"
                android:background="@android:drawable/editbox_background" />
        </LinearLayout>

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

            <TextView
                android:id="@+id/tv_pw"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_below="@id/tv_un"
                android:text="Password:"
                android:textColor="#444444"
                android:textSize="10pt" />

            <EditText
                android:id="@+id/et_pw"
                android:layout_width="400dip"
                android:layout_height="50dip"
                android:layout_alignTop="@id/tv_pw"
                android:layout_below="@id/et_un"
                android:layout_marginLeft="17dip"
                android:layout_toRightOf="@id/tv_pw"
                android:background="@android:drawable/editbox_background"
                android:password="true" />
        </LinearLayout>

        <Button
            android:id="@+id/btn_login"
            android:layout_width="100dip"
            android:layout_height="wrap_content"
            android:layout_below="@id/et_pw"
            android:layout_centerHorizontal="true"
            android:text="Login" />

        <TextView
            android:id="@+id/tv_error"
            android:layout_width="fill_parent"
            android:layout_height="40dip"
            android:layout_below="@id/btn_login"
            android:layout_marginLeft="15dip"
            android:layout_marginRight="9dip"
            android:layout_marginTop="15dip"
            android:text=""
            android:textColor="#AA0000"
            android:textSize="7pt" />
    </LinearLayout>

</RelativeLayout>

样式文件是

<?xml version="1.0" encoding="utf-8"?>

<selector xmlns:android="http://schemas.android.com/apk/res/android">

<item>

    <shape>

        <gradient
            android:angle="90"
            android:startColor="#FFFFFF"
            android:endColor="#FFFFFF"
            android:type="linear" />

        <padding android:left="50dp" android:top="50dp" 
            android:right="50dp" android:bottom="50dp" /> 

        <corners android:radius="4dp" /> 

    </shape>

</item>

</selector>

但按钮总是在屏幕的左边,知道如何解决这个问题

4

2 回答 2

2

添加android:layout_gravity到按钮的中心

 <Button
            android:layout_gravity="center"
            android:id="@+id/btn_login"
            android:layout_width="100dip"
            android:layout_height="wrap_content"
            android:layout_below="@id/et_pw"
            android:layout_centerHorizontal="true"
            android:text="Login" />
 </LinearLayout>
于 2012-06-03T13:02:06.530 回答
1

那是因为您的按钮位于 LinearLayout 内。无论如何,在 RelativeLayout 中有一个 LinearLayout,因为唯一的孩子并没有真正的意义。

如果会建议在没有 LinearLayouts 的情况下构建完整的布局。

于 2012-06-03T13:02:59.120 回答