Android: 当我旋转 phone 时编辑文本相互重叠
Android: Edittexts overlap eachother when I rotate the phone
我有一个非常简单的 xml 文件。 6 个 edittexts 在他们中间。
当我旋转 phone 时,它们会重叠。
我有 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>
为什么你使用相对布局?
只使用线性布局
<?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>
希望对你有帮助
有问题可以问
你的问题
你应该做以下事情来修复它:
- 将所有
android:layout_alignStart
更改为 android:layout_centerHorizontal="true"
endtime
EditText :android:layout_below="@+id/starttime"
而不是 android:layout_centerVertical="true"
然后你可以改变它的边距。 editcinemadescription
EditText 做为 endtime
.
我的建议
事实上,LinearLayout
正是您所需要的。
此处的问题是编辑文本 "starttime" 您定义了居中垂直属性。因此,当您旋转屏幕时,由于没有足够的高度来包含所有控件,它会相互重叠。如果您删除那个 center vertical 属性并在下面指定布局,那么它就可以了。此外,您可能需要添加滚动视图控件才能处理横向模式。
还注意到您已经为所有控件的水平中心指定了对齐开始。您可以只为父相对布局指定 android:gravity="center" 而不是它,然后您可以从所有子控件中删除 alignstart 属性。
我有一个非常简单的 xml 文件。 6 个 edittexts 在他们中间。 当我旋转 phone 时,它们会重叠。 我有 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>
为什么你使用相对布局? 只使用线性布局
<?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>
希望对你有帮助 有问题可以问
你的问题
你应该做以下事情来修复它:
- 将所有
android:layout_alignStart
更改为android:layout_centerHorizontal="true"
endtime
EditText :android:layout_below="@+id/starttime"
而不是android:layout_centerVertical="true"
然后你可以改变它的边距。editcinemadescription
EditText 做为endtime
.
我的建议
事实上,LinearLayout
正是您所需要的。
此处的问题是编辑文本 "starttime" 您定义了居中垂直属性。因此,当您旋转屏幕时,由于没有足够的高度来包含所有控件,它会相互重叠。如果您删除那个 center vertical 属性并在下面指定布局,那么它就可以了。此外,您可能需要添加滚动视图控件才能处理横向模式。 还注意到您已经为所有控件的水平中心指定了对齐开始。您可以只为父相对布局指定 android:gravity="center" 而不是它,然后您可以从所有子控件中删除 alignstart 属性。