我试图将溢出图标(以显示弹出菜单)添加到列表的每一行。每行的左侧都有图像(70dp * 70dp),右侧有溢出图标图像(27dp * 70dp)。

我当前的布局是这样的:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/list_row"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:focusable="true"
    android:paddingLeft="7dp"
    android:paddingStart="7dp"
    android:paddingRight="7dp"
    android:paddingEnd="7dp"
    android:paddingTop="5dp"
    android:paddingBottom="5dp"
    android:clickable="true"
    android:background="?android:attr/selectableItemBackground"
    android:orientation="vertical">

    <!--  ListRow Left side Thumbnail image -->
    <LinearLayout android:id="@+id/thumbnail"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true"
        android:layout_marginRight="5dip"
        android:layout_marginEnd="5dip">

        <ImageView
            android:id="@+id/neighborlisticon"
            android:contentDescription="@string/icon_description"
            android:layout_width="70dip"
            android:layout_height="70dip"/>
    </LinearLayout>

    <TextView
        android:id="@+id/name"
        android:textSize="16sp"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textColor="@color/name"
        android:textStyle="bold"
        android:layout_alignParentTop="true"
        android:layout_alignTop="@+id/thumbnail"
        android:layout_toRightOf="@+id/thumbnail"
        android:layout_toEndOf="@+id/thumbnail"/>

    <TextView
        android:id="@+id/middleline"
        android:textSize="13sp"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textColor="@color/middleline"
        android:layout_below="@id/name"
        android:layout_marginTop="1dip"
        android:layout_toRightOf="@+id/thumbnail"
        android:layout_toEndOf="@+id/thumbnail"/>

    <TextView
        android:id="@+id/text"
        android:textSize="14sp"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textColor="@color/black"
        android:layout_below="@id/middleline"
        android:layout_marginTop="1dip"
        android:layout_toRightOf="@+id/thumbnail"
        android:layout_toEndOf="@+id/thumbnail"/>

    <ImageView
        android:id="@+id/item_overflow"
        android:layout_width="27dp"
        android:layout_height="70dip"
        android:layout_gravity="top|right"
        android:padding="5dp"
        android:scaleType="center"
        android:src="@drawable/ic_more_vert_black_24dp"
        android:layout_alignParentTop="true"
        android:layout_alignParentRight="true"
        android:layout_alignParentEnd="true" />

</RelativeLayout>


但是,这样,中间行中的文本在右侧重叠了溢出图标item_overflow。我不要问题是,点击溢出图标被视为点击一行,因此从不显示弹出菜单。

如何在RelativeLayout中指定以使左侧图像与左侧对齐,右侧图像与右侧对齐,并将中间的所有可用空间用于textview?

最佳答案

使用此布局可在右侧重叠图像(三个点)

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/list_row"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:focusable="true"
android:paddingLeft="7dp"
android:paddingStart="7dp"
android:paddingRight="7dp"
android:paddingEnd="7dp"
android:paddingTop="5dp"
android:paddingBottom="5dp"
android:clickable="true"
android:background="?android:attr/selectableItemBackground"
android:orientation="vertical">

<!--  ListRow Left side Thumbnail image -->
<LinearLayout android:id="@+id/thumbnail"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentLeft="true"
    android:layout_alignParentStart="true"
    android:layout_marginRight="5dip"
    android:layout_marginEnd="5dip">

    <ImageView
        android:id="@+id/neighborlisticon"
        android:contentDescription="@string/icon_description"
        android:layout_width="70dip"
        android:layout_height="70dip"/>
</LinearLayout>

<TextView
    android:id="@+id/name"
    android:textSize="16sp"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:textColor="@color/name"
    android:layout_toLeftOf="@id/item_overflow"
    android:textStyle="bold"
    android:layout_alignParentTop="true"
    android:layout_alignTop="@+id/thumbnail"
    android:layout_toRightOf="@+id/thumbnail"
    android:layout_toEndOf="@+id/thumbnail"/>

<TextView
    android:id="@+id/middleline"
    android:textSize="13sp"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:textColor="@color/middleline"
    android:layout_toLeftOf="@id/item_overflow"
    android:layout_below="@id/name"
    android:layout_marginTop="1dip"
    android:layout_toRightOf="@+id/thumbnail"
    android:layout_toEndOf="@+id/thumbnail"/>

<TextView
    android:id="@+id/text"
    android:textSize="14sp"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:textColor="@color/black"
    android:layout_toLeftOf="@id/item_overflow"
    android:layout_below="@id/middleline"
    android:layout_marginTop="1dip"
    android:layout_toRightOf="@+id/thumbnail"
    android:layout_toEndOf="@+id/thumbnail"/>

<ImageView
    android:id="@+id/item_overflow"
    android:layout_width="27dp"
    android:layout_height="70dip"
    android:layout_gravity="top|right"
    android:padding="5dp"
    android:scaleType="center"
    android:src="@drawable/ic_more_vert_black_24dp"
    android:layout_alignParentTop="true"
    android:layout_alignParentRight="true"
    android:layout_alignParentEnd="true" />




android:layout_toLeftOf =“ @ id / item_overflow”和android:layout_toStartOf =“ @ id / item_overflow”用于文件中的重叠问题。

关于android - 在列表的每一行中添加溢出图标,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/39306580/

10-11 22:25