Reputation: 4253
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
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:
Hope this will help~
Upvotes: 0
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