Android 文本用右侧的按钮中断

Android text breaking with buttons to the right

我有一个列表视图,每个列表项都在 RelativeLayout 中设计。在每个相关布局中,我有三个按钮和两个文本视图。一切都应该排成一排。第一个文本视图应该左对齐,而按钮在一个水平行中与父级的末尾对齐,第二个文本视图直接在它们之前。我的问题是,主文本视图中的非常长的文本与按钮和第二个文本视图重叠。如果文本足够长,它确实会分到第二行,但我希望它能分行。

目前我已将列表设置为 this。遗憾的是,文本不会在 buttons/associated 文本之前中断,而只会在父文本的末尾中断。

以前我有一个 layout_marginEnd160dp,它在我个人 phone 上运行良好,但从那以后我收到了来自其他 phone 用户的错误报告它拥有另一个品牌。

我的代码如下所示:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal">

    <TextView
        android:id="@+id/nameTextView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerVertical="true"
        android:layout_marginStart="10dp"
        android:layout_marginTop="12dp"
        android:layout_marginBottom="12dp"
        android:textIsSelectable="false"
        android:textSize="@dimen/listItemTextSize"
        tools:ignore="UnusedIds" />

    <LinearLayout
        android:id="@+id/buttonLayout"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentEnd="true"
        tools:ignore="RelativeOverlap,UnusedIds">

        <TextView
            android:id="@+id/amountTextView"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center_vertical"
            android:layout_marginEnd="8dp"
            android:textIsSelectable="false"
            android:textSize="@dimen/listItemTextSize" />

        <ImageButton
            android:id="@+id/subtractButton"
            style="@style/Theme.ShoppingList.ImageButton"
            android:background="@drawable/ic_minus"
            android:contentDescription="@string/mainSubtractButtonDescription" />

        <ImageButton
            android:id="@+id/addButton"
            style="@style/Theme.ShoppingList.ImageButton"
            android:background="@drawable/ic_plus"
            android:contentDescription="@string/mainAddButtonDescription" />

        <ImageButton
            android:id="@+id/deleteButton"
            style="@style/Theme.ShoppingList.ImageButton"
            android:background="@drawable/ic_trash"
            android:contentDescription="@string/mainDeleteButtonDescription" />
    </LinearLayout>
</RelativeLayout>

提前感谢您的帮助!

android:layout_toStartOf="@id/buttonLayout" 添加到 nameTextLayout。这将使它在该线性布局之前停止并在那里中断。

android:layout_alignParentStart="true"android:layout_toStartOf="@id/buttonLayout" 添加到 nameTextLayout。

这将打破 LinearLayout 之前的 nameTextView,并保持 nameTextView 的文本左对齐。