我想在CardView的右上角添加一个选项菜单(3个点)。 问题是它在TextView结束时添加。我想在右边添加一个右边5dp的边距。
任何想法如何在每个cardview内部的屏幕右侧添加ImageButton?
<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" />
我的完整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>
答案 0 :(得分:1)
你可以给textview一个权重1:
android:layout_weight="1"
或者只是使用相对布局来定位左/右按钮,然后将文本视图放在中间。
答案 1 :(得分:0)
您也可以尝试这样做:
<?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>
<强>输出:强>
希望这会有所帮助〜