I have following layout:
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/test_ll" android:layout_width="match_parent" android:layout_height="match_parent" android:background="@drawable/background" android:orientation="vertical" > <RelativeLayout android:id="@+id/main_layPanelCircle" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center_vertical|center_horizontal" android:layout_marginLeft="10dp" android:layout_marginRight="10dp" android:layout_marginTop="15dp" android:background="@drawable/main_panel_a" android:orientation="vertical" android:padding="10dp" > <ImageView android:id="@+id/main_imgBreachAlert" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginRight="5dp" /> <Button android:id="@+id/main_btnMap" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerHorizontal="true" android:background="@null" android:drawableTop="@drawable/icon_find" android:text="@string/main_locate" android:textColor="@android:color/white" android:textSize="10sp" /> <LinearLayout android:id="@+id/main_llPanelCycleMiddle" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@+id/main_btnMap" android:layout_centerInParent="true" android:orientation="horizontal" > <Button android:id="@+id/main_btnLeft" android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="@null" android:drawableTop="@drawable/icon_call" android:text="@string/main_call" android:textColor="@android:color/white" android:textSize="10sp" android:visibility="visible" /> <Button android:id="@+id/main_btnEmergency" android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="@null" android:drawableTop="@drawable/icon_emergency" android:scaleType="center" android:text="@string/main_emergency" android:textColor="@android:color/white" android:textSize="9sp" android:textStyle="bold" /> <Button android:id="@+id/main_btnRight" android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="@null" android:drawableTop="@drawable/icon_store" android:text="@string/main_store" android:textColor="@android:color/white" android:textSize="10sp" /> </LinearLayout> <Button android:id="@+id/main_btnMore" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@+id/main_llPanelCycleMiddle" android:layout_centerHorizontal="true" android:background="@null" android:drawableTop="@drawable/icon_more" android:text="@string/main_more" android:textColor="@android:color/white" android:textSize="10sp" /> </RelativeLayout> </LinearLayout>
When i set main_imgBreachAlert android:layout_alignParentLeft="true" eveerything is OK (left image) but when i set it to right mine relative layout stretches (left image):
http://i.imgur.com/uDJqF0k.jpg?1
Could you please advise how could I fix this problem.
Thnx
Below that, the layout_height=0 and layout_weight=1 attributes on the RelativeLayout cause it to take up all the remaining space. You can then center the button in the RelativeLayout . You can play with padding on the button to get it to the size you want.
RelativeLayout lets child views specify their position relative to the parent view or to each other (specified by ID).
Unlike RelativeLayout , ConstraintLayout offers a bias value that is used to position a view in terms of 0% and 100% horizontal and vertical offset relative to the handles (marked with a red circle). These percentages (and fractions) offer seamless positioning of the view across different screen densities and sizes.
A RelativeLayout is a very powerful utility for designing a user interface because it can eliminate nested view groups and keep your layout hierarchy flat, which improves performance. If you find yourself using several nested LinearLayout groups, you may be able to replace them with a single RelativeLayout .
Try android:layout_centerInParent="true"
and remove the alignParentLeft attribute if you want the image centered in your layout.
If you only want to align it to the right, just use android:layout_alignParentRight="true"
.
<ImageView android:id="@+id/main_imgBreachAlert" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentRight="true" android:layout_marginRight="5dp" />
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With