Haresh Chaudhary
Haresh Chaudhary

Reputation: 4400

Unable to Align the Views

This is the part of the Code of a very long Layout.So posting of whole code was of no use.
I want to align the RED circle.Both the positions are shown in the RED colored circles.
The ParentLayout of whole activity is a RelativeLayout but has nothing to do with this.
Please help me.I have tried all the things that I knew.

enter image description here

<LinearLayout 
    android:id="@+id/thumbnail"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_alignParentLeft="true"
    android:layout_below="@+id/texttitle"
    android:orientation="horizontal"
    android:layout_marginTop="20dp"
    android:layout_marginBottom="20dp"
    android:layout_marginLeft="10dp"
    android:layout_marginRight="10dp"
    android:background="@drawable/Layoutborder"
    >
        <LinearLayout 
          android:id="@+id/Linearimagetop"
          android:layout_width="wrap_content"
          android:layout_height="wrap_content"
          android:padding="3dip"
          android:layout_alignParentLeft="true"
          android:background="@drawable/image_bg"
          >
            <ImageView
                android:id="@+id/productimage1"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:src="@drawable/defaultimage"
                android:layout_below="@+id/texttitle"
                />
        </LinearLayout>
        <LinearLayout
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:padding="5dp"
            >
            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="Availability "
                android:textColor="@color/black"
                android:textStyle="normal" />  
            <View
                android:layout_width="1dp" 
                android:layout_height="fill_parent"
                android:background="@color/black"
                android:layout_marginLeft="3dp"
                android:layout_marginRight="3dp"/>
            <TextView
                android:id="@+id/availibility"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="In Stock"
                android:textColor="#4A7023"
                android:textStyle="normal" 
                android:layout_marginLeft="3dp"/>
        </LinearLayout>
</LinearLayout>

Upvotes: 6

Views: 127

Answers (4)

Haresh Chaudhary
Haresh Chaudhary

Reputation: 4400

This was the Another way achieve the above Output.Hope it may help SomeOne.

<RelativeLayout
    android:id="@+id/thumbnail"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="horizontal"
    android:layout_marginTop="20dp"
    android:layout_marginBottom="20dp"
    android:layout_marginLeft="10dp"
    android:layout_marginRight="10dp"
    android:background="@color/white"
    >
    <LinearLayout 
        android:id="@+id/Linearimagetop"
    android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:padding="3dip"
        android:background="@drawable/image_bg"
        android:layout_alignParentLeft="true"
        >
        <ImageView
            android:id="@+id/productimage1"
        android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:src="@drawable/defaultimage"
            android:layout_below="@+id/texttitle"
        />
    </LinearLayout>
    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:padding="5dp"
        android:layout_alignParentRight="true"
        android:layout_alignParentTop="true"
        >
        <TextView
        android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Availability "
            android:textColor="@color/black"
            android:textStyle="normal" />  
        <View
            android:layout_width="1dp" 
            android:layout_height="fill_parent"
            android:background="@color/black"
            android:layout_marginLeft="3dp"
            android:layout_marginRight="3dp"
            />
        <TextView
            android:id="@+id/availibility"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="In Stock"
            android:textColor="#4A7023"
            android:textStyle="normal" 
            android:layout_marginLeft="3dp"
            />
    </LinearLayout>
</RelativeLayout>

Upvotes: 0

Gan
Gan

Reputation: 1399

The code you provided does not show where you have specified the properties of RED text "here". You could probably just add it as another element in your relative layout where you specify the availability and stock which would align it with the preceding text.

Edit: (after understanding your actual problem)

I would suggest wrapping in another linear layout which will enable you to position the text above the picture as shown in the code below.

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="100dp"
android:orientation="vertical" >

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="20dp" >

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:gravity="right"
        android:orientation="horizontal" >

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="match_parent"
            android:text="Availability "
            android:textStyle="normal" />

        <View
            android:layout_width="1dp"
            android:layout_height="fill_parent"
            android:layout_marginLeft="3dp"
            android:layout_marginRight="3dp" />

        <TextView
            android:id="@+id/availibility"
            android:layout_width="wrap_content"
            android:layout_height="match_parent"
            android:layout_marginLeft="3dp"
            android:text="In Stock"
            android:textColor="#4A7023"
            android:textStyle="normal" />
    </LinearLayout>
</LinearLayout>

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="fill_parent" >

    <LinearLayout
        android:id="@+id/thumbnail"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_below="@+id/texttitle"
        android:layout_marginBottom="20dp"
        android:layout_marginLeft="10dp"
        android:layout_marginRight="10dp"
        android:layout_marginTop="20dp"
        android:orientation="horizontal" >

        <LinearLayout
            android:id="@+id/Linearimagetop"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentLeft="true"
            android:padding="3dip" >

            <ImageView
                android:id="@+id/productimage1"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_below="@+id/texttitle"
                android:src="@drawable/button" />
        </LinearLayout>
    </LinearLayout>
</LinearLayout>

Upvotes: 1

Aprian
Aprian

Reputation: 1728

Change the 3rd LinearLayout to :

<LinearLayout
    android:layout_width="0dp"
    android:layout_height="wrap_content"
    android:layout_weight="1"
    android:gravity="right"
    android:padding="5dp" >

Not sure if you are satisfied with that kind of layout.

Upvotes: 1

Xono
Xono

Reputation: 1910

If this whole thing is inside a RelativeLayout, remove the outer LinearLayout (moving margins and such to the first child LinearLayout as required), and change the second child LinearLayout - the one with 5dp padding - to have

android:layout_alignParentRight="true"
android:layout_alignParentTop="true"

If you don't want to do this and have to keep the outer LinearLayout for some reason, move

android:layout_marginTop="20dp"

from the parent LinearLayout to the first child, and set layout_width of the second child to fill_parent, and add android:gravity="right" to it.

Upvotes: 1

Related Questions