如何更正我的Android应用程序的水平方向?

时间:2014-02-20 05:25:54

标签: android relativelayout android-orientation

我已按如下方式设置布局,它是垂直格式,当我将其更改为水平方向时,它总是变得很糟糕。

  

enter image description here

但是当我改变设备的方向时,它会变成这样:

  

enter image description here

有人可以帮我解决这个问题吗?

以下的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>

5 个答案:

答案 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 ....

  1. 在您的资源中创建一个文件夹: -
  2. res / layout-land

    并在其下添加xml文件...

    但请确保将xml文件的名称与纵向模式的名称相同,因为相同的文件将被引用,但是对于不同的模式。

    有关详情,请参阅此Link

答案 4 :(得分:0)

创建一个layout-land目录,并将布局XML文件的横向版本放在该目录中。 完整信息在这里

http://developer.android.com/guide/practices/screens_support.html