我有登录屏幕,我想将按钮居中,所以我使用了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>
但按钮始终位于屏幕的左侧,任何想法如何修复
答案 0 :(得分: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>
答案 1 :(得分:1)
这是因为您的按钮位于LinearLayout内。无论如何,在RelativeLayout中有一个LinearLayout,因为唯一的孩子没有意义。
如果建议在没有LinearLayouts的情况下构建完整的布局。