Search code examples
androidandroid-layoutandroid-relativelayout

Relativelayout property issue


I want to create my Toolbar layout like below image.

enter image description here

I written below code for create this view. Please see my xml Code.

<RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="@dimen/_40sdp"
        android:background="@color/black"
        android:padding="@dimen/_5sdp">

        <ImageView
            android:id="@+id/toolbar_default_img_menu"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentStart="true"
            android:layout_centerVertical="true"
            android:padding="@dimen/_5sdp"
            android:src="@drawable/icon_menu" />

        <TextView
            android:id="@+id/toolbar_default_textview_title"
            style="@style/textview_normal"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_centerVertical="true"
            android:layout_toEndOf="@+id/toolbar_default_img_menu"
            android:layout_toStartOf="@+id/toolbar_default_img_search"
            android:text="@string/app_name"
            android:textColor="@color/white"
            android:textSize="@dimen/_15ssp" />

        <ImageView
            android:id="@+id/toolbar_default_img_search"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_centerVertical="true"
            android:layout_toStartOf="@+id/toolbar_default_img_filter_tag"
            android:padding="@dimen/_5sdp"
            android:src="@drawable/icon_search" />

        <ImageView
            android:id="@+id/toolbar_default_img_filter_tag"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_centerVertical="true"
            android:layout_toStartOf="@+id/toolbar_default_img_filter"
            android:padding="@dimen/_5sdp"
            android:src="@drawable/icon_filter" />

        <ImageView
            android:id="@+id/toolbar_default_img_filter"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentEnd="true"
            android:layout_centerVertical="true"
            android:padding="@dimen/_5sdp"
            android:src="@drawable/icon_filter" />

    </RelativeLayout>

After written this code i can see my view is correct in android studio preview but when i run my project it look like below image.

enter image description here

only left and right imageview on correct position but my textview and other two imageview is not set on correct position after run this code.

May be problem with android:layout_toEndOf and android:layout_toStartOf property of RelativeLayout.

I don't know why this problem create.Thank you for help.


Solution

  • Replace this code:

    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="@dimen/_40sdp"
        android:background="@color/black"
        android:padding="@dimen/_5sdp">
    
        <LinearLayout
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentLeft="true"
            android:gravity="center_vertical"
            android:layout_centerVertical="true"
            android:orientation="horizontal"
            >
            <ImageView
                android:id="@+id/toolbar_default_img_menu"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:padding="@dimen/_5sdp"
                android:src="@drawable/ic_launcher_background" />
    
            <TextView
                android:id="@+id/toolbar_default_textview_title"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_centerVertical="true"
                android:maxEms="50"
                android:text="@string/app_name" />
        </LinearLayout>
    
    
        <LinearLayout
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentEnd="true"
            android:layout_alignParentRight="true"
            android:layout_centerVertical="true"
            android:gravity="center_vertical"
            android:orientation="horizontal">
    
            <ImageView
                android:id="@+id/toolbar_default_img_search"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_centerVertical="true"
                android:padding="@dimen/_5sdp"
                android:src="@drawable/icon_search" />
    
            <ImageView
                android:id="@+id/toolbar_default_img_filter_tag"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_centerVertical="true"
                android:padding="@dimen/_5sdp"
                android:src="@drawable/icon_filter" />
    
            <ImageView
                android:id="@+id/toolbar_default_img_filter"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:padding="@dimen/_5sdp"
                android:src="@drawable/icon_filter" />
        </LinearLayout>
    
    </RelativeLayout>
    

    Do changes as per your requirement by padding and margin to make a proper design.