RGS
RGS

Reputation: 4253

add ImageButton in the right of the screen

I want to add a option menu (3 dots) in the right corner of my CardView. The problem is it is being add when the TextView ends. I'd like to add it in the right with a 5dp margin right from the right of the screen.

Any ideas how can I add the ImageButton on the right side of the screen inside each cardview?

        <ImageButton
            android:id="@+id/imageButton"
            android:layout_width="20dp"
            android:layout_height="30dp"
            android:src="@mipmap/ic_dots_vertical_black_18dp"
            android:contentDescription="..."
            android:background="@null"
            android:visibility="gone"
            android:layout_gravity="right" /> 

my full xml:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:background="#fff">

    <android.support.v7.widget.CardView
        xmlns:card_view="http://schemas.android.com/apk/res-auto"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        card_view:cardCornerRadius="0dp"
        android:id="@+id/card_view"
        android:layout_marginBottom="0dp"
        android:layout_marginEnd="0dp"
        android:layout_marginLeft="0dp"
        android:layout_marginRight="0dp"
        android:layout_marginStart="0dp"
        android:layout_marginTop="0dp">

        <LinearLayout
            android:padding="@dimen/activity_horizontal_margin"
            android:orientation="vertical"
            android:layout_width="match_parent"
            android:layout_height="match_parent" >

            <LinearLayout
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_centerHorizontal="true"
                android:orientation="horizontal" >

                <ImageView
                    android:layout_width="50dp"
                    android:layout_height="50dp"
                    android:padding="0dp"
                    android:id="@+id/ProfilePic"
                    android:paddingBottom="20dp"
                    android:adjustViewBounds="true" />

                <TextView
                    android:id="@+id/textViewUser"
                    android:textStyle="bold"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:paddingLeft="10dp"
                    android:paddingBottom="20dp"
                    />

                <ImageButton
                    android:id="@+id/imageButton"
                    android:layout_width="20dp"
                    android:layout_height="30dp"
                    android:src="@mipmap/ic_dots_vertical_black_18dp"
                    android:contentDescription="..."
                    android:background="@null"
                    android:visibility="gone"
                    android:layout_gravity="right" />

            </LinearLayout>
                </LinearLayout>



    </android.support.v7.widget.CardView>

</RelativeLayout>

Upvotes: 0

Views: 562

Answers (2)

Ferdous Ahamed
Ferdous Ahamed

Reputation: 21736

You can try this also:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:background="#fff">

    <android.support.v7.widget.CardView
        xmlns:card_view="http://schemas.android.com/apk/res-auto"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        card_view:cardCornerRadius="0dp"
        android:id="@+id/card_view"
        android:layout_marginBottom="0dp"
        android:layout_marginEnd="0dp"
        android:layout_marginLeft="0dp"
        android:layout_marginRight="0dp"
        android:layout_marginStart="0dp"
        android:layout_marginTop="0dp">

        <RelativeLayout
            android:padding="@dimen/activity_horizontal_margin"
            android:layout_width="match_parent"
            android:layout_height="wrap_content" >

            <ImageView
                android:layout_width="50dp"
                android:layout_height="50dp"
                android:id="@+id/ProfilePic"
                android:src="@mipmap/ic_launcher"/>

            <ImageButton
                android:id="@+id/imageButton"
                android:layout_width="20dp"
                android:layout_height="30dp"
                android:src="@mipmap/ic_launcher"
                android:contentDescription="..."
                android:background="@null"
                android:visibility="visible"
                android:layout_alignParentRight="true"/>

            <TextView
                android:id="@+id/textViewUser"
                android:textStyle="bold"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_toRightOf="@id/ProfilePic"
                android:layout_toLeftOf="@id/imageButton"
                android:paddingLeft="16dp"
                android:paddingRight="5dp"
                android:paddingBottom="20dp"
                android:text="This is a sample text"/>

        </RelativeLayout>
    </android.support.v7.widget.CardView>
</RelativeLayout>

OUTPUT:

enter image description here

Hope this will help~

Upvotes: 0

Feuby
Feuby

Reputation: 718

you could give textview a weight of 1 :

android:layout_weight="1"

or simply use a relative layout to position your left/right buttons, then put the textview in the middle.

Upvotes: 1

Related Questions