Android 文本用右侧的按钮中断
Android text breaking with buttons to the right
我有一个列表视图,每个列表项都在 RelativeLayout
中设计。在每个相关布局中,我有三个按钮和两个文本视图。一切都应该排成一排。第一个文本视图应该左对齐,而按钮在一个水平行中与父级的末尾对齐,第二个文本视图直接在它们之前。我的问题是,主文本视图中的非常长的文本与按钮和第二个文本视图重叠。如果文本足够长,它确实会分到第二行,但我希望它能分行。
目前我已将列表设置为 this。遗憾的是,文本不会在 buttons/associated 文本之前中断,而只会在父文本的末尾中断。
以前我有一个 layout_marginEnd
的 160dp
,它在我个人 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 的文本左对齐。
我有一个列表视图,每个列表项都在 RelativeLayout
中设计。在每个相关布局中,我有三个按钮和两个文本视图。一切都应该排成一排。第一个文本视图应该左对齐,而按钮在一个水平行中与父级的末尾对齐,第二个文本视图直接在它们之前。我的问题是,主文本视图中的非常长的文本与按钮和第二个文本视图重叠。如果文本足够长,它确实会分到第二行,但我希望它能分行。
目前我已将列表设置为 this。遗憾的是,文本不会在 buttons/associated 文本之前中断,而只会在父文本的末尾中断。
以前我有一个 layout_marginEnd
的 160dp
,它在我个人 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 的文本左对齐。