簡體   English   中英

處理TextView中的溢出文本

[英]Handle Overflowing Text in TextView

我有一個布局,可以在人名旁邊顯示一些數字。 我已經在LinearLayout設置了它,並提供了權重以使其准確地放在列表中。 但是,如果我的金額值變大,它將分成我不希望的第二行。 如果數量較大,則應縮小名稱以顯示完整數量。

當金額較小時,它看起來像這樣:

在此處輸入圖片說明

我的布局文件如下:

<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

這是更改后的ID amount TextView:

<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>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM