【问题标题】:Android: Edittexts overlap eachother when I rotate the phoneAndroid:当我旋转手机时,Edittext 相互重叠
【发布时间】:2017-05-23 15:38:39
【问题描述】:

我有一个非常简单的 xml 文件。 6 个编辑文本相互之间。 当我旋转手机时,它们会重叠。 我有 6 个编辑文本 1) 基本编辑文本 2) 日期选择器 3)时间选择器 4) 时间选择器 5) 基本编辑文本 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>

【问题讨论】:

    标签: android xml android-edittext rotation overlap


    【解决方案1】:

    你的问题

    你应该做以下事情来修复它:

    • 将所有android:layout_alignStart 更改为android:layout_centerHorizontal="true"
    • endtime EditText :android:layout_below="@+id/starttime" 而不是 android:layout_centerVertical="true" 然后你可以改变它的顶部边距。 editcinemadescriptionEditText 做 endtime

    我的建议

    其实LinearLayout是你需要的。

    【讨论】:

      【解决方案2】:

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

      <?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>
      

      希望这对你有帮助 有什么问题可以问

      【讨论】:

        【解决方案3】:

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2011-08-31
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多