我有控件,我想将它们放在屏幕中心,所以我使用了以下代码
<?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:gravity="center_vertical|center_horizontal"
android:background="#DDDDDD">
<TextView
android:id="@+id/tv_un"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="10pt"
android:textColor="#444444"
android:layout_marginRight="9dip"
android:layout_marginTop="20dip"
android:layout_marginLeft="10dip"
android:text="User Name:"/>
<EditText
android:id="@+id/et_un"
android:layout_width="150dip"
android:layout_height="wrap_content"
android:background="@android:drawable/editbox_background"
android:layout_toRightOf="@id/tv_un"
android:layout_alignTop="@id/tv_un"/>
<TextView
android:id="@+id/tv_pw"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="10pt"
android:textColor="#444444"
android:layout_below="@id/tv_un"
android:layout_marginRight="9dip"
android:layout_marginTop="15dip"
android:layout_marginLeft="10dip"
android:text="Password:"/>
<EditText
android:id="@+id/et_pw"
android:layout_width="150dip"
android:layout_height="wrap_content"
android:background="@android:drawable/editbox_background"
android:layout_toRightOf="@id/tv_pw"
android:layout_alignTop="@id/tv_pw"
android:layout_below="@id/et_un"
android:layout_marginLeft="17dip"
android:password="true" />
<Button
android:id="@+id/btn_login"
android:layout_width="100dip"
android:layout_height="wrap_content"
android:layout_below="@id/et_pw"
android:layout_marginTop="15dip"
android:layout_marginLeft="110dip"
android:text="Login" />
<TextView
android:id="@+id/tv_error"
android:layout_width="fill_parent"
android:layout_height="40dip"
android:textSize="7pt"
android:layout_below="@id/btn_login"
android:layout_marginRight="9dip"
android:layout_marginTop="15dip"
android:layout_marginLeft="15dip"
android:textColor="#AA0000"
android:text=""/>
</RelativeLayout>
但输出如下图所示
无论屏幕的方向如何,都知道如何将它们居中
祝你好运
答案 0 :(得分:7)
尝试android:layout_centerInParent = "true"
这可以解决您的问题。您可以将此属性应用于要在屏幕中心显示的任何元素。
答案 1 :(得分:4)
编辑了你的代码
这里是
<?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:orientation="vertical" >
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
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="150dip"
android:layout_height="wrap_content"
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="150dip"
android:layout_height="wrap_content"
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_marginLeft="110dip"
android:layout_marginTop="15dip"
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>
答案 2 :(得分:2)
设置RelativeLayout
参数:android:layout_height="wrap_content"
和android:layout_width="wrap_content"
让所有的XML看起来都很好。
答案 3 :(得分:1)
在布局和布局中使用android:layout_centerHorizontal =“true”; layout-land文件夹xml文件。希望它有所帮助。
P.s如果您希望布局适合所有屏幕尺寸,请不要对xml文件中的任何内容进行硬编码
答案 4 :(得分:1)
此处您不需要RelativeLayout
。您还可以使用以下两个LinearLayouts
:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:background="#DDDDDD"
android:gravity="center" >
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:orientation="vertical" >
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal" >
<!-- here your textViews -->
</LinearLayout>
</LinearLayout>
</LinearLayout>
重要的是嵌套android:layout_gravity="center"
中的LinearLayout
。