按钮和文本在我在模拟器中运行时会放错位置,但是在设计视图中,在Android Studio 3.3.1中似乎很好。
当我在此活动中添加了相对约束时,此代码在设计视图中看起来不错,但是当我运行此代码时,按钮和>文本被放错了位置。
XML代码:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context=".secondactivity">
<EditText
android:id="@+id/etName"
android:layout_width="243dp"
android:layout_height="wrap_content"
android:layout_alignParentStart="true"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:layout_alignParentEnd="true"
android:layout_alignParentRight="true"
android:layout_alignParentBottom="true"
android:layout_marginStart="82dp"
android:layout_marginLeft="82dp"
android:layout_marginTop="336dp"
android:layout_marginEnd="86dp"
android:layout_marginRight="86dp"
android:layout_marginBottom="278dp"
android:ems="10"
android:hint="user id"
android:inputType="textPersonName"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.475"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.408" />
<Button
android:id="@+id/button5"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentStart="true"
android:layout_alignParentLeft="true"
android:layout_alignParentEnd="true"
android:layout_alignParentRight="true"
android:layout_alignParentBottom="true"
android:layout_marginStart="147dp"
android:layout_marginLeft="147dp"
android:layout_marginEnd="149dp"
android:layout_marginRight="149dp"
android:layout_marginBottom="124dp"
android:text="login"
android:textSize="14sp"
android:textStyle="bold" />
<EditText
android:id="@+id/editText3"
android:layout_width="243dp"
android:layout_height="wrap_content"
android:layout_alignParentStart="true"
android:layout_alignParentLeft="true"
android:layout_alignParentEnd="true"
android:layout_alignParentRight="true"
android:layout_alignParentBottom="true"
android:layout_marginStart="80dp"
android:layout_marginLeft="80dp"
android:layout_marginEnd="88dp"
android:layout_marginRight="88dp"
android:layout_marginBottom="219dp"
android:ems="10"
android:hint="Password"
android:inputType="textPersonName" />
<TextView
android:id="@+id/textView3"
android:layout_width="141dp"
android:layout_height="37dp"
android:layout_alignParentStart="true"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:layout_alignParentEnd="true"
android:layout_alignParentRight="true"
android:layout_marginStart="131dp"
android:layout_marginLeft="131dp"
android:layout_marginTop="288dp"
android:layout_marginEnd="139dp"
android:layout_marginRight="139dp"
android:text="Admin Login"
android:textSize="24sp"
android:textStyle="bold" />
</RelativeLayout>
帮助我解决这个问题。
您使用的是RelativeLayout
(在大多数情况下应该避免这种情况),但至少第一个控件是使用适用于新ConstrainLayout
的属性(该RelativeLayout
将无法使用)。不确定您是如何实例化此布局的,但所有这些都是危险信号。
您至少应该显示不同的布局(如@benjytec建议),以及如何使用此布局(您在Activity
中使用setContentView()
吗?您是否在夸大布局并随后将其连接到某个地方?...)
您正在放置太多相互矛盾的相关约束;另外,您的边距/填充太多了,太多不适合每个屏幕;取而代
请尝试一下
<?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"
android:orientation="vertical"
tools:context=".secondactivity">
<EditText
android:id="@+id/etName"
android:layout_width="243dp"
android:layout_height="wrap_content"
android:layout_below="@+id/textView3"
android:layout_centerInParent="true"
android:ems="10"
android:hint="user id"
android:inputType="textPersonName" />
<Button
android:id="@+id/button5"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/editText3"
android:layout_centerInParent="true"
android:layout_marginTop="64dp"
android:text="login"
android:textSize="14sp"
android:textStyle="bold" />
<EditText
android:id="@+id/editText3"
android:layout_width="243dp"
android:layout_height="wrap_content"
android:layout_below="@+id/etName"
android:layout_centerInParent="true"
android:ems="10"
android:hint="Password"
android:inputType="textPersonName" />
<TextView
android:id="@+id/textView3"
android:layout_width="141dp"
android:layout_height="37dp"
android:layout_centerHorizontal="true"
android:layout_marginTop="200dp"
android:layout_marginBottom="16dp"
android:text="Admin Login"
android:textSize="24sp"
android:textStyle="bold" />
</RelativeLayout>
您还需要在不同的屏幕尺寸和方向上尝试它,因为您可能会在此上更改textView3
的顶部边距,以免将布局隐藏在屏幕上。在这种情况下,约束布局可能是更好的选择,我鼓励您尝试一下。
希望满足您的需求。