在有些时候,我们想给一些控件进行长度控制,例如下面的品牌车系,可以点击选择车辆品牌并展示到“品牌车系”所在的textview中
一开始品牌车系处的代码如下:
那么在我选择了品牌车系的车辆品牌后,如果名称过长,会出现如下效果:
或者:
这样子肯定不可以。
于是我想到了,将最右边的控件中,textview的长度做个限制:
android:maxLength="8"
就是做了个限制,textview最大长度为8,效果如下:
本来这个效果我很满意了,可是测试那边过不去,说我这内容展示不全,可以在末尾加上省略号。
那么我想到了textview的一个属性:
android:ellipsize="end"
就是在末尾内容过长时变为省略号,但我添加这条属性之后:
跟没加之前效果一样的,省略号却没有出现。难道是我之前的maxlength=8影响了这个功能?
于是我将maxlength这个属性先注释掉(安卓开发要多用注释,少用删除):
车辆品牌的内容倒是全部出来了,但是求购控件呢?你怎么又被挤没了。
最后突然想起来,textview的属性是wrap_content包裹内容,无论多少字,textview都只会变长变短,并不会出现省略号。
一定是宽度需要限制!
重点来了!!!:
我输入了一个max,android studio帮我联想出的选择里有个 android:maxWidth 属性:
android:maxWidth="100dp"
当我设置了这个属性之后,效果如下:
哎?怎么变成两行了?赶紧加上 android:singleLine="true" 单行控制。最终达到了后台想要的效果了:
最终代码如下:
在给textview设置了最大宽度后,即使内容再多,android:layout_width="wrap_content" 这句包裹内容也干涉不了我了。
虽然这只是一个很小的细节,但网上也没看到直接的教程。大神们不可能顾及到每个小东西来发布给新手们看,我们要学会自己多尝试,一点点的接近自己的目标,这才是开发的乐趣所在。
希望能给大家带来帮助~