I've been trying all day to get this to work and i think that I can use RelativeLayout
android:layout_weight="0.3"
to place three buttons on the right side of the screen, not centered but 30% down from the top.
Is this possible and if so how do I do it?
The following is my XML that shows three buttons underneath each other but in top right position:
</RelativeLayout>
<LinearLayout
android:id="@+id/rightRelativeLayout"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_weight="1"
android:orientation="vertical"
>
<ImageButton
android:id="@+id/btn_A"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="A"
android:src="@drawable/drawer_1"
android:background="@android:color/transparent"
/>
<ImageButton
android:id="@+id/btn_B"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:layout_weight="1"
android:text="B"
android:src="@drawable/drawer_1"
android:background="@android:color/transparent"
android:layout_below="@+id/btn_A"
/>
<ImageButton
android:id="@+id/btn_C"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:layout_marginTop="10dp"
android:text="C"
android:src="@drawable/drawer_1"
android:background="@android:color/transparent"
android:layout_below="@+id/btn_B"
/>
</LinearLayout>
[UPDATE] Added final working version for people who need it
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout android:id="@+id/RelativeLayout1"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical">
<Gallery xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/examplegallery"
android:layout_width="fill_parent"
android:layout_height="wrap_content" />
<RelativeLayout
android:id="@+id/InnerRelativeLayout"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true" >
<Button
android:id="@+id/btn_newpen_drawtext"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Pen"
/>
<EditText
android:id="@+id/etx_addtext_drawtext"
android:layout_width="fill_parent"
android:layout_toLeftOf="@+id/btn_delete_pen"
android:layout_toRightOf="@+id/btn_newpen_drawtext"
android:layout_height="wrap_content"
android:singleLine="true"
android:text=""
/>
<Button
android:id="@+id/btn_delete_pen"
android:layout_toLeftOf="@+id/btn_save_drawtext"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Del"
/>
<Button
android:id="@+id/btn_save_drawtext"
android:layout_alignParentRight="true"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="save"
/>
</RelativeLayout>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/rightLinerLayoutL0"
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:layout_toRightOf="@+id/RelativeLayout1"
android:weightSum="1.0"
android:layout_alignParentRight="true"
android:orientation="vertical"
>
<LinearLayout android:layout_height="0dp"
android:id="@+id/rightLinerLayoutL1"
android:layout_weight="0.15"
android:layout_width="0dp">
</LinearLayout>
<LinearLayout android:layout_height="0dp"
android:orientation="vertical"
android:id="@+id/rightLinerLayoutL2"
android:layout_weight="0.85"
android:layout_width="wrap_content">
<ImageButton android:text="Button_A"
android:background="@android:color/transparent"
android:layout_height="wrap_content"
android:id="@+id/btn_A"
android:layout_width="wrap_content"
android:layout_gravity="right"
android:src="@drawable/drawer"
android:onClick="btnAListener">
</ImageButton>
<ImageButton android:text="Button_B"
android:background="@android:color/transparent"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:id="@+id/btn_B"
android:layout_width="wrap_content"
android:layout_gravity="right"
android:src="@drawable/drawer"
android:onClick="btnBListener">
</ImageButton>
<ImageButton android:text="Button_C"
android:background="@android:color/transparent"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:id="@+id/btn_C"
android:layout_width="wrap_content"
android:layout_gravity="right"
android:src="@drawable/drawer"
android:onClick="btnCListener">
</ImageButton>
</LinearLayout>
</LinearLayout >
</RelativeLayout>
Stack 2 LinearLayout (L1, L2) sections with weights of 0.3 and 0.7 (and heights of 0dp) inside a LinearLayout (L0) with vertical orientation and total weight of 1.0. Put your buttons in the 0.7 weighted layout (L2). That will give you your spacing of 30% above the buttons.
You can then place the containing LinearLayout (L0) inside a RelativeLayout (R0) and place L0 relative to the right of the parent (R0), which will position the entire thing on the right side of the screen.
Edit: My version is pretty much same as Milde in end, except using a root of
RelativeLayout
so I could put thelayout_alignParentRight="true"
to ensure it's flush to the right. The only sticking point I found was ensuring your first LinearLayout has height offill_parent
so that your spacer really is 30% of screen.Try this:
Since this xml file doesn't give error it doesn't mean that you can use these attributes (weight, orientation associated to LinearLayout) with RelativeLayout. Please see the documentation for RelativeLayout first.