2016-09-20 4 views
0

人の名前の横にいくらかの額を表示するレイアウトがあります。私はそれをLinearLayoutに設定し、リストに載せられたときに正確に載せるための重さを提供しました。しかし、私の金額の値が大きくなると、2行に分かれてしまいます。金額が大きければ、総額を表示するために名前を縮小する必要があります。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に設定すると、このトリックが行われました。ここで

は、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" /> 
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>