Problem with relative layouts: anchored elements at the top right

I’m trying to create an android application but I’m a beginner, especially with the XML. I don’t know why, if I put Relative layout and move the widgets they remain anchored at the top left. does anyone know why?

ps I would like to work on the window design not on the code. Anyway I leave you the code in case there is something wrong

<?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"      tools:context=".Tentativo">      <TextView          android:layout_width="wrap_content"          android:layout_height="wrap_content"          android:text="Number"          android:textSize="50dp"          android:textStyle="bold"          app:layout_constraintBottom_toBottomOf="parent"          app:layout_constraintHorizontal_bias="0.255"          app:layout_constraintLeft_toLeftOf="parent"          app:layout_constraintRight_toRightOf="parent"          app:layout_constraintTop_toTopOf="parent"          app:layout_constraintVertical_bias="0.299" />      <Button          android:id="@+id/button"          android:layout_width="wrap_content"          android:layout_height="wrap_content"          android:text="Play"          tools:layout_editor_absoluteX="247dp"          tools:layout_editor_absoluteY="211dp" />  </RelativeLayout> 
Asked on July 17, 2020 in XML.
Add Comment
2 Answer(s)

You are facing this problem because you are using the wrong attributes. The attributes you are using are meant for Constraint Layout and not Relative layout.

For Example: in case of TextView instead of using app:layout_constraintRight_toRightOf="parent" try using android:layout_alignParentRight="true"

Also, I would like to recommend you to use Constraint Layout instead of Relative as is much better and easier to use. example: To center a view in a RelativeLayout you would write centerInParent=true. Constraint Layout instead allows centering in-between views and the parent.

Add Comment

relative layout works great with nested sibling Containers, just add a container, and add the Widgets inside the container, my favorite one to use when Relative Layout is the parent is the Linear Layout, it makes the UI much cleaner and uses weights which is great for supporting different screen ratios. Here is a sample Example for your case (also you can remove all the constraints in the widget since their parent is no longer the relative layout) :

<?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">      <LinearLayout         android:layout_width="wrap_content"         android:orientation="vertical"         android:layout_centerHorizontal="true"         android:gravity="center"         android:weightSum="2"         android:layout_height="wrap_content">          <TextView              android:layout_width="wrap_content"              android:layout_height="wrap_content"              android:text="Number"              android:layout_weight="1"              android:textSize="50dp"              android:textStyle="bold"              app:layout_constraintBottom_toBottomOf="parent"              app:layout_constraintHorizontal_bias="0.255"              app:layout_constraintLeft_toLeftOf="parent"              app:layout_constraintRight_toRightOf="parent"              app:layout_constraintTop_toTopOf="parent"              app:layout_constraintVertical_bias="0.299" />          <Button              android:id="@+id/button"              android:layout_width="wrap_content"              android:layout_height="wrap_content"              android:layout_weight="1"              android:text="Play"              tools:layout_editor_absoluteX="247dp"              tools:layout_editor_absoluteY="211dp" />      </LinearLayout>   </RelativeLayout> 
Add Comment

Your Answer

By posting your answer, you agree to the privacy policy and terms of service.