Android表单方向更改问题

时间:2014-02-20 12:48:31

标签: android layout screen-orientation

您好我正在尝试为密码更改活动设计布局。我已经做到了,但是当屏幕方向改变时,它看起来很奇怪。

对于横向模式它看起来不错,我设计了相对布局的图形模式布局,我的edittext字段居中对齐,我的文本视图左对齐。当我将其更改为肖像时,编辑文本中心对齐,我的textview没有空间适合屏幕。发布我的截图我没有太多的声誉。所以请理解并帮助我

我如何设计它以擅长两个方向

<RelativeLayout
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignLeft="@+id/textView1"
    android:layout_alignParentBottom="true"
    android:layout_alignRight="@+id/imageButton1"
    android:layout_below="@+id/imageButton2"
    android:layout_marginTop="15dp"
    android:background="@color/white" >

    <EditText
        android:id="@+id/currentPwd"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="100dp"
        android:background="@drawable/pwd_txt_box"
        android:ems="10"
        android:inputType="textPassword" >

        <requestFocus />
    </EditText>

    <TextView
        android:id="@+id/textView2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBaseline="@+id/currentPwd"
        android:layout_alignBottom="@+id/currentPwd"
        android:layout_marginRight="42dp"
        android:layout_toLeftOf="@+id/currentPwd"
        android:text="@string/current_password"
        android:textAppearance="?android:attr/textAppearanceMedium" />

    <EditText
        android:id="@+id/newPwd"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/currentPwd"
        android:layout_marginTop="24dp"
        android:layout_toRightOf="@+id/textView2"
        android:background="@drawable/pwd_txt_box"
        android:ems="10"
        android:inputType="textPassword" />

    <TextView
        android:id="@+id/textView3"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBaseline="@+id/newPwd"
        android:layout_alignBottom="@+id/newPwd"
        android:layout_alignLeft="@+id/textView2"
        android:text="@string/new_password"
        android:textAppearance="?android:attr/textAppearanceMedium" />

    <EditText
        android:id="@+id/confirmPwd"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignLeft="@+id/newPwd"
        android:layout_below="@+id/newPwd"
        android:layout_marginTop="26dp"
        android:background="@drawable/pwd_txt_box"
        android:ems="10"
        android:inputType="textPassword" />

    <TextView
        android:id="@+id/textView4"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBaseline="@+id/confirmPwd"
        android:layout_alignBottom="@+id/confirmPwd"
        android:layout_alignLeft="@+id/textView3"
        android:text="@string/confirm_password"
        android:textAppearance="?android:attr/textAppearanceMedium" />

</RelativeLayout>

这是我的xml布局代码

3 个答案:

答案 0 :(得分:0)

您好需要为横向和纵向模式创建两种不同的布局尝试this并创建新文件夹

 res/
    layout/              # default (portrait)
        main.xml
    layout-land/         # landscape
        main.xml
    layout-large/        # large (portrait)
        main.xml
    layout-large-land/   # large landscape
        main.xml

我希望这可以帮到你

答案 1 :(得分:0)

在res文件夹中创建layout-land。在其中粘贴xml并调整此文件夹中的横向布局以及纵向使用简单布局文件夹并对其中的纵向进行更改。

答案 2 :(得分:0)

默认情况下,/res/layout中的布局同时应用于纵向和横向。

如果你有例如

/res/layout/main.xml

添加新文件夹/res/layout-land,将main.xml复制到其中并进行必要的调整。

  1.)  create folder /res/layout-land (here you will keep your landscape adjusted layouts)
  2.)  copy home.xml there
  3.)  make necessary changes to it

有关详情,请参阅此link

另请参阅http://www.androidpeople.com/android-portrait-amp-landscape-differeent-layoutshttp://www.devx.com/wireless/Article/40792/1954了解更多选项。