为什么Android Studio中的布局会叠加?

时间:2017-03-11 20:41:27

标签: android android-layout

您好我想弄清楚为什么我的模拟器中的布局相互堆叠。我不确定我在布局中做了什么让它看起来像这样,如果有人可以帮助,将非常感激。

这是它正在做的事情 enter image description here

以下是Android Studio的代码:

android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="com.example.phil.httppost.User_Profile">

<EditText
    android:id="@+id/editText2"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_centerHorizontal="true"
    android:ems="10"
    android:hint="Name"
    android:inputType="textPersonName"
    tools:layout_editor_absoluteX="73dp"
    tools:layout_editor_absoluteY="100dp" />

<Button
    android:id="@+id/submit"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_centerHorizontal="true"
    android:text="Submit"
    tools:layout_editor_absoluteY="152dp"
    android:layout_below = "@id/editText2"
    android:layout_margin = "20px"
    tools:layout_editor_absoluteX="136dp" />
<EditText
    android:id="@+id/editText3"
    android:layout_width="344dp"
    android:layout_height="wrap_content"
    android:ems="10"
    android:hint="Bio"
    android:inputType="textMultiLine"
    tools:layout_editor_absoluteX="8dp"
    tools:layout_editor_absoluteY="208dp" />

<Button
    android:id="@+id/button2"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Upload REsume"
    android:layout_marginLeft="8dp"
    app:layout_constraintLeft_toLeftOf="parent"
    android:layout_marginRight="8dp"
    app:layout_constraintRight_toRightOf="parent"
    android:layout_marginStart="8dp"
    android:layout_marginEnd="8dp"
    tools:layout_editor_absoluteY="266dp"
    android:layout_centerHorizontal = "true"/>

2 个答案:

答案 0 :(得分:1)

尝试将它们放在LinearLayout

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingLeft="16dp"
    android:paddingRight="16dp"
    android:orientation="vertical" >
    <!-- Your code here -->
</LinearLayout>

这将使每个项目显示在上一个项目下!

答案 1 :(得分:0)

android:id="@+id/editText3"不是相对于任何其他视图的布局。

android:id="@+id/button2"这个按钮没有被设置为父布局中的其他视图,基本上大多数定义的视图都没有正确通知布局中的其余视图,因此产生的布局是错误的。例如,将编辑文本下方的提交按钮对齐。对于未来的设计,请考虑采用必要的方法来阐述您的观点。如果你不想那种控制。用线性布局粘贴(在这种情况下是垂直的)。

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >

<Button
    android:id="@+id/btnButton1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Button 1"/>

<Button
    android:id="@+id/btnButton2"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Button 2"
    android:layout_toRightOf="@+id/btnButton1"/>

 <Button
    android:id="@+id/btnButton3"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Button 3"
    android:layout_below="@+id/btnButton1"/>

 <TextView
     android:id="@+id/textView1"
     android:layout_width="wrap_content"
     android:layout_height="wrap_content"
     android:layout_below="@+id/btnButton3"
     android:layout_marginTop="94dp"
     android:text="User :"
     android:textAppearance="?android:attr/textAppearanceLarge" />

 <EditText
     android:id="@+id/editText1"
     android:layout_width="wrap_content"
     android:layout_height="wrap_content"
     android:layout_alignParentRight="true"
     android:layout_alignTop="@+id/textView1"
     android:layout_toRightOf="@+id/btnButton3" />

 <Button
     android:id="@+id/btnSubmit"
     android:layout_width="wrap_content"
     android:layout_height="wrap_content"
     android:layout_alignParentRight="true"
     android:layout_below="@+id/editText1"
     android:text="Submit" />