Why does my relative layout occupy full screen width
Solution 1
cause you have a
android:layout_alignParentLeft="true"
width an object , and a
android:layout_alignParentRight="true"
width another object , then the layout extends to both side , giving you the full width layout.
But when you use Layout_alignParentXXXXX , and you put in parent WRAP_CONTENT , that makes children to go to the upper layout with a width defined.
Solution 2
This line makes the "Press Here" button (Button01
) align to the right:
android:layout_alignParentRight="true"
That makes your layout fill the parent in width.
Comments
-
Santosh almost 2 years
Why does my relative layout occupy full screen width
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="#f00" > <Button android:id="@+id/Button01" android:text="Press Here" android:layout_alignParentRight="true" android:layout_width="wrap_content" android:layout_height="wrap_content"></Button> <Button android:id="@+id/Button02" android:text="02" android:layout_alignParentLeft="true" android:layout_width="wrap_content" android:layout_height="wrap_content"></Button> </RelativeLayout>
I have specified the relative layout to "wrap_content", then why does it occupy full screen space. Out put is same even if i say android:layout_width="fill_parent".
Enlighten me please!
EDIT : I think i was not very clear with my question earlier. Apologies for that. When I have 2 child views in a relative layout and one of them is left aligned to parent and other is right aligned and relative layouts width is WRAP_CONTENT then I expected the layouts width to be just the sum of width of 2 buttons (isn't that's what WRAP_CONTENT means??). I know there are other ways of achieving the UI im looking for but Im just trying to understand these relative layout tags properly.
EDIT 2: I have experimented a bit and it looks like if we using Layout_AlighParentRight with its parent's width as WRAP_CONTENT then the upper layout width is used for calculation (like few answers pointed out below). But we are using just the Layout_alignParentLeft then it works as expected and layout width is not extending to the complete screen. Thanks for the help folks!
-
Santosh over 12 yearsThanks for the answer, but its not very clear to me. Are you saying that if we use Layout_alignParentXXXX and the parents width is WRAP_CONTENT, then upper layout (parent's parent) width is used for calculation?? is that true?
-
A.Quiroga over 12 yearsmy experience told me that , but you can try it , putting another upper LinearLayout with a width for example of 50dip and see the result :)
-
Santosh over 12 yearsI have experimented a bit and it looks like if we using Layout_AlighParentRight with its parent's width as WRAP_CONTENT then the upper layout width is used for calculation (like you pointed out). But we are using just the Layout_alignParentLeft then it works as expected and layout width is not extending to the complete screen. Thanks for the help Quiroga!