在屏幕右侧添加ImageButton

时间:2017-04-17 18:13:21

标签: android xml android-layout

我想在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>

2 个答案:

答案 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>

<强>输出:

enter image description here

希望这会有所帮助〜