問題描述:
在開發(fā)中碰到一個問題,就是一行中有兩個TextView虐骑,要求第一個TextView顯示超過一行后顯示為省略號膀跌,第二個TextView要求全部顯示。
如圖:
當?shù)谝粋€TextView不足一行時,顯示效果如圖:
但是當前面的TextView過長會導致后面的TextView顯示不全,出現(xiàn)截斷或者壓縮問題偿凭。如果給第一個TextView固定長度的話,第二個TextView無法緊跟在第一個TextView的后面煤蹭。
解決
直接看代碼:
<LinearLayout
android:layout_width="wrap_content" // 重點1
android:layout_height="wrap_content"
android:orientation="horizontal">
<TextView
android:id="@+id/tv_store_dealer_name_top"
android:layout_width="0dp" //重點2
android:layout_height="wrap_content"
android:layout_weight="1" //重點3
android:ellipsize="end"
android:singleLine="true"
tools:text="texttexttexttexttexttexttexttexttext" />
<TextView
android:id="@+id/tv_dealer_type_top"
android:layout_width="28dp"
android:layout_height="14dp"
android:layout_marginLeft="5dp"
android:layout_marginStart="5dp"
android:text="text"
android:gravity="center"/>
</LinearLayout>
如上代碼期中有幾個重點的地方已經(jīng)標注出來笔喉。
第一個TextView顯示省略號的設(shè)置,這里就不再講硝皂。
重點1:如果寬設(shè)置為match_parent的話常挚,因為第一個TextView的權(quán)重為1,所有導致第一個TextView沒有超過一行時稽物,第二個TextView沒有緊跟在前一個的后面奄毡,而是在行的末尾。
重點2與重點3:設(shè)置第一個TextView的權(quán)重為1贝或,第二個TextView的權(quán)重為默認值0吼过,因此系統(tǒng)會按照兩個TextView的warp_content來分配寬度,在滿足了第二個TextView的寬度后咪奖,剩下的都給了第一個TextView盗忱。