Search code examples
c#xamlxamarinlayout

Xamarin Android layout align image right


I have a form that looks like this:

Xamarin before

I want it to look like this:

Xamarin after

I am having trouble getting the imageview at the bottom to align to the right and the text to come to the side of it.

Here is my code:

<LinearLayout
            android:orientation="horizontal"
            android:minWidth="25px"
            android:minHeight="25px"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:id="@+id/linearLayout1"
            android:layout_margin="2dp">

            <TextView
                android:id="@+id/TextView1"
                android:layout_height="wrap_content"
                android:drawablePadding="10dp"
                android:gravity="right|center"
                android:text="Batch Code:"
                android:textColor="@color/black"
                style="@style/ECSmallText"
                android:layout_width="95dp"
                android:layout_gravity="center_vertical" />
            <TextView
                android:id="@+id/TextView_BatchCode"
                android:layout_height="wrap_content"
                android:layout_marginLeft="15dp"
                android:gravity="center|left"
                android:text="XXX"
                android:textColor="@color/black"
                style="@style/ECSmallTextBold"
                android:layout_width="100dp"
                android:layout_gravity="center_vertical" />           
          
        </LinearLayout>  
        <LinearLayout
            android:orientation="horizontal"
            android:minWidth="25px"
            android:minHeight="25px"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:id="@+id/linearLayout1"
            android:layout_margin="2dp">
            
            <TextView
                android:id="@+id/TextView1"
                android:layout_height="wrap_content"
                android:gravity="right|center"
                android:text="Day Colour:"
                android:textColor="@color/black"
                style="@style/ECSmallText"
                android:layout_width="95dp"
                android:layout_gravity="center_vertical" />
            <TextView
                android:id="@+id/TextView_DayOfWeekColour"
                android:layout_height="wrap_content"
                android:layout_marginLeft="15dp"
                android:gravity="center|left"
                android:text="01/01/2000"
                android:textColor="@color/black"
                style="@style/ECSmallTextBold"
                android:layout_width="100dp"
                android:layout_gravity="center_vertical" />            
            
        </LinearLayout>                                  
                 
        <LinearLayout
            android:orientation="horizontal"
            android:minWidth="25px"
            android:minHeight="25px"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:id="@+id/linearLayout1"
            android:layout_margin="2dp">
            
            <TextView
                android:id="@+id/TextView1"
                android:layout_height="wrap_content"
                android:gravity="right|center"
                android:text="Tray Count:"
                android:textColor="@color/black"
                style="@style/ECSmallText"
                android:layout_width="95dp"
                android:layout_gravity="center_vertical" />
            <TextView
                android:id="@+id/TextView_TrayCount"
                android:layout_height="wrap_content"
                android:layout_marginLeft="15dp"
                android:gravity="center|left"
                android:text="01/01/2000"
                android:textColor="@color/black"
                style="@style/ECSmallTextBold"
                android:layout_width="wrap_content"
                android:layout_gravity="center_vertical" />
        </LinearLayout>        
        <LinearLayout
            android:orientation="horizontal"
            android:minWidth="25px"
            android:minHeight="25px"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:id="@+id/linearLayout1"
            android:layout_margin="5dp">
            <ImageView
                android:src="@android:drawable/ic_menu_gallery"
                android:layout_width="match_parent"
                android:layout_height="200dp"
                android:layout_centerInParent="true"
                android:gravity="center"
                android:adjustViewBounds="true"
                android:id="@+id/imageView_QRCode"
                android:layout_weight="1"
                android:scaleType="center"
                android:layout_marginLeft="0.0dp" />            
        </LinearLayout> 
        <LinearLayout
            android:orientation="horizontal"
            android:minWidth="25px"
            android:minHeight="25px"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:id="@+id/linearLayout1"
            android:layout_margin="2dp">
            
        </LinearLayout> 
    </LinearLayout>

Solution

  • You can use layout_weight to achieve this.

    <!--> // Container Linear Layout </-->
    <LinearLayout
        android:orientation="horizontal"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:weightSum="100"
        > 
    
        <!--> // Left side Linear Layout </-->
        <LinearLayout
                android:orientation="vertical"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight="40"
        >
        <!--> // Other Elements </-->
        </LinearLayout>
    
    
        <!--> // Right side Linear Layout (Image Portion) </-->
        <LinearLayout
                android:orientation="vertical"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight="60"
        >
        <!--> // Image </-->
        </LinearLayout>
    
    </LinearLayout>
    

    See more about layout_weight of linear layout here