0

我有一个包含元素的 RecyclerView,我希望元素的删除按钮位于右侧。当我在模拟器上测试它或在 Android Studio 中查看它的外观时,它看起来不错,但是当我在真实设备上启动应用程序时,按钮超出了屏幕的边界。我的问题是如何为按钮设置正确的对齐方式,并且这样做文本不会与按钮重叠,而是以省略号结尾或在下一行换行。

在模拟器上和 Android Studio 中: 在模拟器上 在 Android Studio中

但在我的真实设备上: 在三星 Galaxy Grand Prime VE Duos SM-G531H/DS

我的 list_item_view.xml 文件:

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="72dp"
    xmlns:tools="http://schemas.android.com/tools"
    android:padding="8dp"
    android:paddingStart="16dp"
    android:paddingEnd="16dp"
    android:gravity="center_vertical"
    android:orientation="horizontal">


    <TextView
        android:id="@+id/text_list_item"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center_vertical"
        android:textSize="24sp"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        tools:text="ExampleList" />

    <ImageView
        android:id="@+id/imageView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center|end"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        app:srcCompat="@android:drawable/ic_menu_delete" />

</androidx.constraintlayout.widget.ConstraintLayout>

我想对文本和按钮做这样的事情: 邮件应用程序中的列表

4

2 回答 2

1

尝试使用Relative layout

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="72dp"
    xmlns:tools="http://schemas.android.com/tools"
    android:padding="8dp"
    android:paddingStart="16dp"
    android:paddingEnd="16dp"
    android:gravity="center_vertical"
    android:orientation="horizontal">


    <TextView
        android:id="@+id/text_list_item"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center_vertical"
        android:textSize="24sp"
        tools:text="ExampleList" />

    <ImageView
        android:id="@+id/imageView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentEnd="true"
        android:layout_gravity="center|end"
        app:srcCompat="@android:drawable/ic_menu_delete" />

</RelativeLayout>

如果您希望它像您发布的最后一张图片一样,那么您可以使用此代码,完善您的上述代码

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:gravity="center_vertical"
    android:orientation="horizontal"
    android:padding="8dp"
    android:paddingStart="16dp"
    android:paddingEnd="16dp">

    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerVertical="true"
        android:orientation="vertical">

        <TextView
            android:id="@+id/text_list_item_head"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center_vertical"
            android:layout_marginBottom="5dp"
            android:textSize="22sp"
            tools:text="ExampleList" />

        <TextView
            android:id="@+id/text_list_item_desc"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center_vertical"
            android:textSize="18sp"
            tools:text="Example List Description" />

    </LinearLayout>

    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentEnd="true"
        android:orientation="vertical">

        <TextView
            android:id="@+id/textView"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center|end"
            android:layout_marginBottom="5dp"
            android:text="15 m"
            app:srcCompat="@android:drawable/ic_menu_delete" />

        <ImageView
            android:id="@+id/imageView"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center|end"
            app:srcCompat="@android:drawable/ic_menu_delete" />

    </LinearLayout>

</RelativeLayout>
于 2019-10-28T11:25:10.870 回答
0

当 TextView 的文本长度增加时,您的删除图像将与文本重叠。所以把垂直指南。

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout 
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="72dp"
android:gravity="center_vertical"
android:orientation="horizontal"
android:padding="8dp">


<TextView
    android:id="@+id/text_list_item"
    android:layout_width="0dp"
    android:layout_height="wrap_content"
    android:layout_gravity="center_vertical"
    android:textSize="24sp"
    app:layout_constraintBottom_toBottomOf="parent"
    app:layout_constraintEnd_toStartOf="@+id/guideline2"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintTop_toTopOf="parent"
    tools:text="Hello example" />

<ImageView
    android:id="@+id/imageView"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="center|end"
    android:layout_marginEnd="8dp"
    app:layout_constraintBottom_toBottomOf="parent"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintStart_toEndOf="@+id/guideline2"
    app:layout_constraintTop_toTopOf="parent"
    app:srcCompat="@android:drawable/ic_menu_delete" />

<androidx.constraintlayout.widget.Guideline
    android:id="@+id/guideline2"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:orientation="vertical"
    app:layout_constraintGuide_end="56dp" />

</androidx.constraintlayout.widget.ConstraintLayout>
于 2019-10-28T11:45:13.160 回答