我已按如下方式设置布局,它是垂直格式,当我将其更改为水平方向时,它总是变得很糟糕。
但是当我改变设备的方向时,它会变成这样:
有人可以帮我解决这个问题吗?
以下的XML代码如下:
<?xml version="1.0" encoding="UTF-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center" >
<Button
android:id="@+id/bBackfromInquiry"
android:layout_width="50dp"
android:layout_height="50dp"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:background="@drawable/back" />
<Button
android:id="@+id/bSubmit"
android:layout_width="90dp"
android:layout_height="90dp"
android:layout_alignParentBottom="true"
android:layout_alignParentRight="true"
android:background="@drawable/mail_us" />
<EditText
android:id="@+id/etMailbody"
android:layout_width="wrap_content"
android:layout_height="150dp"
android:layout_above="@+id/bSubmit"
android:layout_alignParentLeft="true"
android:layout_alignParentRight="true"
android:ems="10"
android:hint="@string/inqhintComments" />
<EditText
android:id="@+id/etPhone"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_above="@+id/textView5"
android:layout_alignParentLeft="true"
android:layout_marginBottom="27dp"
android:ems="10"
android:hint="@string/inqhintPhone"
android:inputType="phone" />
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBaseline="@+id/bBackfromInquiry"
android:layout_alignBottom="@+id/bBackfromInquiry"
android:layout_marginLeft="17dp"
android:layout_toRightOf="@+id/bBackfromInquiry"
android:text="@string/buttonInquiry"
android:textAppearance="?android:attr/textAppearanceLarge" />
<TextView
android:id="@+id/textView5"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_centerVertical="true"
android:text="@string/inqComments"
android:textAppearance="?android:attr/textAppearanceMedium" />
<EditText
android:id="@+id/etName"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_below="@+id/bBackfromInquiry"
android:ems="10"
android:hint="@string/inqhintName"
android:inputType="textPersonName" >
<requestFocus />
</EditText>
<EditText
android:id="@+id/etEmail"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_below="@+id/etName"
android:layout_marginTop="15dp"
android:ems="10"
android:hint="@string/inqhintEmail"
android:inputType="textEmailAddress" />
</RelativeLayout>
答案 0 :(得分:1)
在您的设备中试用此xml代码
<?xml version="1.0" encoding="UTF-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/sc"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<LinearLayout
android:id="@+id/LinearLayout1"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center"
android:orientation="vertical" >
<LinearLayout
android:id="@+id/LinearLayout1"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center"
android:orientation="horizontal" >
<Button
android:id="@+id/bBackfromInquiry"
android:layout_width="50dp"
android:layout_height="50dp"
android:background="@drawable/back" />
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="15dp"
android:text="@string/buttonInquiry"
android:textAppearance="?android:attr/textAppearanceLarge" />
</LinearLayout>
<EditText
android:id="@+id/etName"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginTop="15dp"
android:hint="@string/inqhintName"
android:inputType="textPersonName" />
<EditText
android:id="@+id/etEmail"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginTop="15dp"
android:hint="@string/inqhintEmail"
android:inputType="textEmailAddress" />
<EditText
android:id="@+id/etPhone"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginTop="15dp"
android:hint="@string/inqhintPhone"
android:inputType="phone" />
<TextView
android:id="@+id/textView5"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="left"
android:layout_marginTop="15dp"
android:text="@string/inqComments"
android:textAppearance="?android:attr/textAppearanceMedium" />
<EditText
android:id="@+id/etMailbody"
android:layout_width="wrap_content"
android:layout_height="150dp"
android:layout_gravity="left"
android:layout_marginTop="15dp"
android:hint="@string/inqhintComments" />
<Button
android:id="@+id/bSubmit"
android:layout_width="90dp"
android:layout_height="90dp"
android:layout_gravity="right"
android:layout_marginTop="15dp"
android:background="@drawable/mail_us" />
</LinearLayout>
</ScrollView>
答案 1 :(得分:0)
有时,当您省略
时会发生这种情况android:layout_below="@id/xyz"
但在这种情况下,我认为屏幕上的所有字段都没有足够的空间。 我认为ScrollView(可能带有垂直的LinearLayout)可以帮助你。
更新(发布XML后):
尝试仅使用layout_below
重写它。目前看起来一个视图位于顶部,第二个位于其下方,第三个位于中心,但不能保证第二个和第三个视图不会重叠。
答案 2 :(得分:0)
我的建议是在res目录中创建另一个xml for landscape,例如res / layout-land,以便在横向模式下完美查看 或者您可以在xml中放置滚动视图
答案 3 :(得分:0)
@MananGupta:我建议你也为横向模式创建xml ....
res / layout-land
并在其下添加xml文件...
但请确保将xml文件的名称与纵向模式的名称相同,因为相同的文件将被引用,但是对于不同的模式。
有关详情,请参阅此Link
答案 4 :(得分:0)
创建一个layout-land目录,并将布局XML文件的横向版本放在该目录中。 完整信息在这里
http://developer.android.com/guide/practices/screens_support.html