当前位置: 首页 > 知识库问答 >
问题:

在列表的每一行中添加溢出图标

尹凌龙
2023-03-14

我正在尝试添加溢出图标(以显示弹出菜单)到列表的每一行。每行左侧有图像(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(s)?

共有2个答案

陈斌蔚
2023-03-14

仅在下面的文本视图中提供android:layout_toleftof=“@+id/item_overflow”属性。

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

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

    <TextView
        android:id="@+id/text"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@id/middleline"
        android:layout_marginTop="1dip"
        android:layout_toEndOf="@+id/thumbnail"
        android:layout_toRightOf="@+id/thumbnail"
        android:layout_toLeftOf="@+id/item_overflow"
        android:textColor="#000000"
        android:text="Testing"
        android:textSize="14sp" />
陆信瑞
2023-03-14

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

<?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" />

null

android:layout_toleftof=“@id/item_overflow”和android:layout_tostartof=“@id/item_overflow”用于解决文件中的重叠问题。

 类似资料:
  • 如何将Sencha按钮添加到列表的每一行?我在图像中添加了文本占位符,以说明按钮应该放在哪里。

  • 问题内容: 我有一个字典列表,并且想为该列表的每个元素添加一个键。我试过了: 但是update方法返回None,所以我的结果列表中没有None。 返回语法错误。 问题答案: 您无需担心要构建新的词典列表,因为对更新后的词典的引用与对旧词典的引用相同:

  • 问题内容: 我们有一列是一个简单的整数。我们要在每行中添加值10。我们如何在mysql中的sql中执行该操作? 实际上,我们还有另一列需要做同样的事情,这是一个日期。我们需要在日期上加上一个月。怎么做? 问题答案: 整数: 日期:

  • 我在laravel 5.3中工作,我想在现有表格中添加列(即课程章节)。所以我已经通过命令创建了迁移文件 迁移文件已经创建,我已经添加了一些代码来在该表中添加列,如下所示 我执行命令后 PHP工匠迁移 表没有被创建,而不是我得到了错误 任何答案? 我现有的表迁移文件是

  • 我有一个表,表中有一些列。两列有组合框,现在我想做的是,当用户从column1组合框中选择一些值时,根据用户选择的值,应该填充column2组合框。例如,如果用户从column1组合框中选择value1,则column2组合框将仅显示与value1对应的值。