美文网首页
一行中多个TextView显示不全问题

一行中多个TextView显示不全问题

作者: zgfei | 来源:发表于2017-10-13 11:08 被阅读296次

问题描述:

在开发中碰到一个问题,就是一行中有两个TextView,要求第一个TextView显示超过一行后显示为省略号,第二个TextView要求全部显示。
如图:

效果图.png

当第一个TextView不足一行时,显示效果如图:

效果图.png

但是当前面的TextView过长会导致后面的TextView显示不全,出现截断或者压缩问题。如果给第一个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>

如上代码期中有几个重点的地方已经标注出来。

第一个TextView显示省略号的设置,这里就不再讲。

重点1:如果宽设置为match_parent的话,因为第一个TextView的权重为1,所有导致第一个TextView没有超过一行时,第二个TextView没有紧跟在前一个的后面,而是在行的末尾。

重点2与重点3:设置第一个TextView的权重为1,第二个TextView的权重为默认值0,因此系统会按照两个TextView的warp_content来分配宽度,在满足了第二个TextView的宽度后,剩下的都给了第一个TextView。

相关文章

网友评论

      本文标题:一行中多个TextView显示不全问题

      本文链接:https://www.haomeiwen.com/subject/oixzyxtx.html