2016-09-20 49 views
0

我有一个布局,在其中显示人物名称旁边的一些数量。我已经在LinearLayout中设置了它,并提供了权重,以便在列表中列出。但是,如果我的金额价值变大,它将分成两排,我不想要。如果金额较大,名称应缩小以显示全部金额。在TextView中处理溢出文本

它看起来像这样的时候量小:

enter image description here

我的布局文件如下:

<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点溢出。

布局变化会做什么?谢谢。

回答

1

好的,我发现了。

删除layout_weight,加入minWidth和设置layout_widthwrap_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" /> 
0

你就要成功了,用下面的代码更新代码:

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