Elements overlapping on top of each other in relativeLayout

32,361

Solution 1

The solution I have found out is: Use android:layout_below instead of android:layout_alignTop / android:layout_alignRight

<TextView
    android:id="@+id/heading"
    android:text="My First Activity with Relative Layout"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_centerHorizontal="true"
    />

<Button
    android:id="@+id/button"
    android:text="Save"
    android:layout_width="300px"
    android:layout_height="wrap_content"
    android:layout_below="@id/heading"
    android:layout_margin="20px"
    android:layout_centerHorizontal="true"
    />

Here is the screenshot:

Snapshot with working Relative Layout

Solution 2

I guess you want a button first and a textview second. Then you can do something like this:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:paddingBottom="@dimen/activity_vertical_margin"
tools:context=".MyActivity">

<TextView
    android:id="@+id/heading"
    android:text="@string/hello_world"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    />

<Button
    android:id="@+id/button"
    android:text="@string/sachin_jain"
    android:layout_width="wrap_content"
    android:layout_height="20dp"
    android:layout_alignRight="@+id/heading"
    android:layout_alignTop="@+id/heading"
    android:layout_centerHorizontal="true"
    />

</RelativeLayout>

Your problem was that you had:

 android:layout_alignLeft="@+id/heading"
    android:layout_alignTop="@+id/heading"

in your button that made both the view align top of eachother.

Share:
32,361
Sachin Jain
Author by

Sachin Jain

Updated on July 16, 2020

Comments

  • Sachin Jain
    Sachin Jain almost 4 years

    I have created an Activity and used RelativeLayout which comes in by default in Android Studio.

    I am trying to place a button just before my TextView but I am unable to do that.

    Here is the result:

    enter image description here

    Here is my code:

    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:paddingLeft="@dimen/activity_horizontal_margin"
        android:paddingRight="@dimen/activity_horizontal_margin"
        android:paddingTop="@dimen/activity_vertical_margin"
        android:paddingBottom="@dimen/activity_vertical_margin"
        tools:context=".MyActivity">
    
        <TextView
            android:id="@+id/heading"
            android:text="@string/hello_world"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            />
    
        <Button
            android:id="@+id/button"
            android:text="@string/sachin_jain"
            android:layout_width="wrap_content"
            android:layout_height="20dp"
            android:layout_alignLeft="@+id/heading"
            android:layout_alignTop="@+id/heading"
            android:layout_centerHorizontal="true"
            />
    
    </RelativeLayout>
    

    Looks like I am missing something. Any help would be appreciated!!