Android:当我旋转手机时,Edittexts会互相重叠

时间:2017-05-23 15:38:39

标签: android xml android-edittext rotation overlap

我有一个非常简单的xml文件。 6个edittexts是他们自己。 当我旋转手机时,它们重叠。 我有6个edittext 1)基本的editttext 2)datepicker 3)timepicker 4)timepicker 5)基本的edittext 6)基本编辑文本

我该如何解决这个问题?

代码如下。非常感谢 !

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context="com.background.finalbudyfinder.CreateCinemaActivity" >


    <EditText
        android:id="@+id/editcinematitel"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="22dp"
        android:ems="10"
        android:imeOptions="actionDone"
        android:hint="Titel"
        android:inputType="textPersonName"
        android:layout_alignParentTop="true"
        android:layout_alignStart="@+id/starttime" />

    <EditText
        android:id="@+id/date"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:focusableInTouchMode="false"
        android:hint="Date"
        android:layout_marginTop="26dp"
        android:ems="10"
        android:padding="15dp"
        android:layout_below="@+id/editcinematitel"
        android:layout_alignStart="@+id/editcinematitel" />

    <EditText
        android:id="@+id/starttime"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:focusableInTouchMode="false"
        android:layout_marginTop="24dp"
        android:ems="10"
        android:hint="Start-Zeit"
        android:layout_below="@+id/date"
        android:layout_centerHorizontal="true" />

    <EditText
        android:id="@+id/endtime"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:focusableInTouchMode="false"
        android:ems="10"
        android:hint="End-Zeit"
        android:layout_centerVertical="true"
        android:layout_alignStart="@+id/starttime" />

    <EditText
        android:id="@+id/editcinemaort"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:ems="10"
        android:hint="Ort"
        android:inputType="textPersonName"
        android:layout_below="@+id/endtime"
        android:layout_alignStart="@+id/endtime"
        android:layout_marginTop="27dp" />

   <!-- <EditText
        android:id="@+id/editcinemaendzeit"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:ems="10"
        android:hint="Description"
        android:inputType="textPersonName"
        android:layout_above="@+id/buttoncreatecinema"
        android:layout_alignStart="@+id/editcinemaort"
        android:layout_marginBottom="26dp" />

    <EditText
        android:id="@+id/editcinemastartzeit"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="119dp"
        android:ems="10"
        android:hint="Start-Zeit"
        android:layout_below="@+id/editcinematitel"
        android:layout_centerHorizontal="true" />

    <EditText
        android:id="@+id/date"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:hint="Select Date..."
        android:padding="15dp"
        android:textColor="#897"
        android:textColorHint="#090"
        android:textSize="20sp"
        android:textStyle="bold"
        android:layout_marginBottom="25dp"
        android:layout_alignBottom="@+id/editcinemastartzeit"
        android:layout_centerHorizontal="true" /> -->

    <EditText
        android:id="@+id/editcinemadescription"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:ems="10"
        android:hint="Description"
        android:inputType="textPersonName"
        android:layout_above="@+id/buttoncreatecinema"
        android:layout_alignStart="@+id/editcinemaort"
        android:layout_marginBottom="26dp" />

    <Button
        android:id="@+id/buttoncreatecinema"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:layout_centerHorizontal="true"
        android:layout_marginBottom="27dp"
        android:text="Create" />

</RelativeLayout>

3 个答案:

答案 0 :(得分:1)

为什么使用相对布局? 只需使用线性布局

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation ="vertical"
tools:context="com.background.finalbudyfinder.CreateCinemaActivity" >


    <EditText
        android:id="@+id/editcinematitel"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="22dp"
        android:ems="10"
        android:imeOptions="actionDone"
        android:hint="Titel"
        android:inputType="textPersonName"

        android:layout_alignStart="@+id/starttime" />

    <EditText
        android:id="@+id/date"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:focusableInTouchMode="false"
        android:hint="Date"
        android:layout_marginTop="26dp"
        android:ems="10"
        android:padding="15dp"

        android:layout_alignStart="@+id/editcinematitel" />

    <EditText
        android:id="@+id/starttime"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:focusableInTouchMode="false"
        android:layout_marginTop="24dp"
        android:ems="10"
        android:hint="Start-Zeit"

         />

    <EditText
        android:id="@+id/endtime"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:focusableInTouchMode="false"
        android:ems="10"
        android:hint="End-Zeit"
        android:layout_alignStart="@+id/starttime" />

    <EditText
        android:id="@+id/editcinemaort"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:ems="10"
        android:hint="Ort"
        android:inputType="textPersonName"
        android:layout_marginTop="27dp" />

   <!-- <EditText
        android:id="@+id/editcinemaendzeit"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:ems="10"
        android:hint="Description"
        android:inputType="textPersonName"
        android:layout_above="@+id/buttoncreatecinema"
        android:layout_alignStart="@+id/editcinemaort"
        android:layout_marginBottom="26dp" />

    <EditText
        android:id="@+id/editcinemastartzeit"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="119dp"
        android:ems="10"
        android:hint="Start-Zeit"
        android:layout_below="@+id/editcinematitel"
        android:layout_centerHorizontal="true" />

    <EditText
        android:id="@+id/date"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:hint="Select Date..."
        android:padding="15dp"
        android:textColor="#897"
        android:textColorHint="#090"
        android:textSize="20sp"
        android:textStyle="bold"
        android:layout_marginBottom="25dp"
        android:layout_alignBottom="@+id/editcinemastartzeit"
        android:layout_centerHorizontal="true" /> -->

    <EditText
        android:id="@+id/editcinemadescription"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:ems="10"
        android:hint="Description"
        android:inputType="textPersonName"

        android:layout_marginBottom="26dp" />

    <Button
        android:id="@+id/buttoncreatecinema"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"

        android:layout_marginBottom="27dp"
        android:text="Create" />

</LinearLayout>

希望这有助于你 如果你有任何问题,你可以问

答案 1 :(得分:1)

您的问题

你应该做以下事情来解决它:

  • 将所有Element Instructions Branches Cxty Lines Methods getEnv() 212 8% n/a 0 1 1 1 0 1 getBranch() 1840 68% 31 25% 2 3 0 3 0 1 getSlackChannel() 1840 68% 31 25% 2 3 0 3 0 1 Utilities() 14 0% n/a 1 1 0 0 1 1 createJob(Object) 1134 75% 35 62% 2 5 0 6 0 1 getTeamEmail() 24 66% n/a 0 1 0 1 0 1 Total 84 of 204 58% 9 of 16 43% 7 14 1 14 1 6 更改为android:layout_alignStart
  • android:layout_centerHorizontal="true" EditText:endtime而不是android:layout_below="@+id/starttime",然后您可以更改其上边距。 android:layout_centerVertical="true" EditText作为editcinemadescription

我的建议

事实上,您需要endtime

答案 2 :(得分:1)

这里的问题是您已经定义了中心垂直属性的编辑文本“starttime”。因此,当您旋转屏幕时,由于没有足够的高度来容纳所有控件,因此它们相互重叠。如果删除该中心垂直属性并在下面指定布局,则可以。此外,您可能需要添加滚动视图控件才能处理横向模式。 还注意到您已为所有控件指定了中心水平对齐开始。而不是它你可以只为父相对布局指定android:gravity =“center”然后你可以摆脱所有子控件的alignstart属性。