在TextView中处理溢出文本
问题描述:
我有一个布局,在其中显示人物名称旁边的一些数量。我已经在LinearLayout
中设置了它,并提供了权重,以便在列表中列出。但是,如果我的金额价值变大,它将分成两排,我不想要。如果金额较大,名称应缩小以显示全部金额。在TextView中处理溢出文本
它看起来像这样的时候量小:
我的布局文件如下:
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center_vertical"
android:orientation="horizontal"
android:paddingBottom="5dp"
android:paddingTop="5dp">
<ImageView
android:id="@+id/contact_image"
style="@style/ContactImageView.ExtraSmall"
app:contactBadge="@{contact}" />
<TextView
android:id="@+id/contact_name"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginLeft="10dp"
android:layout_weight="3"
android:gravity="left"
android:ellipsize="end"
android:maxLines="1"
android:text="@{contact.name}"
android:textAppearance="?android:attr/textAppearanceMedium"
android:textColor="@color/black" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/colon" />
<TextView
android:id="@+id/amount"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="end"
app:amount="@{amount}"
android:textAppearance="?android:attr/textAppearanceMedium"
android:textColor="@color/black" />
</LinearLayout>
我与ellipsize="end"
处理四溢的名字。但是,全额应该显示完整。它不能被切割为显示3点溢出。
布局变化会做什么?谢谢。
答
好的,我发现了。
删除layout_weight
,加入minWidth
和设置layout_width
到wrap_content
诀窍。
这里是改变TextView的ID amount
的:
<TextView
android:id="@+id/amount"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:minWidth="70dp"
android:gravity="end"
app:amount="@{amount}"
android:textAppearance="?android:attr/textAppearanceMedium"
android:textColor="@color/black" />
答
你就要成功了,用下面的代码更新代码:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content" >
<ImageView
android:id="@+id/contact_image"
style="@style/ContactImageView.ExtraSmall"
app:contactBadge="@{contact}" />
<TextView
android:id="@+id/contact_name"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_toEndOf="@+id/contact_image"
android:layout_toStartOf="@+id/column"
android:ellipsize="end"
android:maxLines="1"
android:paddingStart="@dimen/activity_horizontal_margin"
android:text="@{contact.name}"
android:textAppearance="?android:attr/textAppearanceMedium"
android:textColor="@color/black" />
<TextView
android:id="@+id/column"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_toStartOf="@+id/amount"
android:text=":" />
<TextView
android:id="@+id/amount"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentEnd="true"
app:amount="@{amount}"
android:textAppearance="?android:attr/textAppearanceMedium"
android:textColor="@color/black" />
</RelativeLayout>