ListView与TextView的几种非一般属性解析

ListView与TextView的几种特殊属性解析

1、背景介绍

      在开发中,有时候会嵌套使用滑动控件,ListView是最常见的被嵌套的内容,这个时候需要使用很多我们平时很少使用的控件属性,比如禁止获取焦点,设置没有分割线等等。有时候对TextView需要做一些特殊的处理,比如说,颜色值、包裹内容、有行数的限制、末尾显示点点省略。

      在开发的时候,如果我们常用的包裹内容,可能会出现一行数据多,一行数据少的情况,这样一来,原本既定的显示布局可能被挤压而导致页面看起来不美观,用户体验差。有时候常会发现,如果我们只想显示一行数据,后面的数据被强行截断,用户体验也非常糟糕,可以显示省略号,效果会好很多。


2、ListView的特殊属性

2.1 scrollbars

      这个属性值挺有意思的,是用来显示滚动的进度条的,当我们使用了ListView布局之后,在右手边上会有一个滚动条显示。在做通讯录这样的软件的时候,我们希望显示进度条,但是有时候,我们不想显示这个滚动条,那么这个属性值的作用就来了。android:scrollbars="none"就可以不显示进度条了。或者在JAVA代码中,使用如下语句:

setVerticalScrollBarEnabled(true);

2.2 divider

       divider属性的使用也很奇怪,有一次做开发的时候,我们的UI过来跟我说,能不能不显示中间的这条线,看着很怪异,我看了下,搭配的颜色确实挺奇怪的。然后我就去找了一下这个属性,发现果然有这样的属性值,我们可以将这个值设置为UI设计的颜色属性,或者背景图片。

       与divider属性相关的,还有一个dividerHeight这样的属性,我们可以设置每一个item之间的间距高度。

2.3 cacheColorHint

        这个属性值的意思是说,缓存的默认颜色值,在早期的Android版本中,这个值的颜色是黑色的。有时候,我们会自定义item的背景颜色,比如设置background颜色值为绿色或者白色等等,但是当我们快速滑动的时候,颜色值会发生变化,显示黑色。这个时候,我们只需要使用cacheColorHint这个属性,将之设置为透明的就可以了,比如设置颜色:#00000000.


3、TextView的特殊属性

3.1 maxLines最大行数

       maxLines表示这一行的TextView显示的行数,当我们的数据只想显示一行数据的时候,可以设置为1。有时候我们显示的是一个item内容,可以设置5等其它的常数值等信息。

3.2 ellipsize末尾显示

       ellipsize这个属性的值设置有很多个,大家可以试验一下,我们常用的是end,表示在结尾的时候,显示点点。这个属性常和上面的那个属性一起配套使用,常用的是maxLines设置的值为1,ellipsize的值设置为end,表示一行最大值结束,如果超出了屏幕的宽度,会显示点点。