• Ask a Question
  • Create a Poll
150
    Ask a Question
    Cancel
    150
    More answer You can create 5 answer(s).
      Ask a Poll
      Cancel

      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 by Marry on July 17, 2020 in XML.
      2 Answers

      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.

      Answered by Joaquinjulieshari on July 17, 2020..

      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> 
      Answered by Titusantoniagladys on July 17, 2020..