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,表示一行最大值结束,如果超出了屏幕的宽度,会显示点点。

时间: 2024-08-04 15:06:25

ListView与TextView的几种特殊属性解析的相关文章

ListView 性能优化------使用ViewHolder,修改layout_weight属性为“match_parent”

转载自:http://blog.csdn.net/pkxiuluo01/article/details/7380860 Adapter是ListView界面与数据之间的桥梁,当列表里的每一项显示到页面时,都会调用Adapter的getView方法返回一个View.如果列表中有很多的项时会占用极大的系统资源,所以我们需要优化Adapter 1.convertView的使用 [java] view plaincopy Java代码 public View getView(int position, 

文件重命名之动态修改ListView里指定Item中的组件属性

在Android实际开发过程中经常会遇到,修改ListView中某一项的值.如何达到这一目的呢? 方法主要有两种: 第一种方式:当ListView中某一项的值发生变化之后,重新加载数据已达到更新ListView的目的. 虽然第一种方式能够解决问题,但不值得推荐.因为这样会带来不必要的资源消耗.在移动终端这种硬件资源和计算能力都有限的情况下,显然有点得不偿失了,况且用户的体验也不好. 第二种方式:第二种方式可以说是第一种方式的改进.ListView中某一项的值发生改变,实际上是ListView的数

(转)DataRow的各种状态和DataView的两种过滤属性

DataRow的各种状态 http://www.cnblogs.com/zxjyuan/archive/2008/08/20/1271987.html 一个DataRow对象刚被创建之后(DataTable.NewRow())其状态是Detached,是孤立的一个存在. 所以建立了DataRow之后在DataRow中的单元填充了数据后还要通过DataTable.Rows.Add(DataRow)方法将此DataRow添加到DataTable,DataRow添加到DataTable后, 这个Dat

strus2中获取表单数据 两种方式 属性驱动 和模型驱动

strus2中获取表单数据 两种方式 属性驱动 和模型驱动 属性驱动 /** * 当前请求的action在栈顶,ss是栈顶的元素,所以可以利用setValue方法赋值* 如果一个属性在对象栈,在页面上可以根据name属性进行回显*/ /** * 属性驱动实现的条件:* 1.当前请求的action在栈顶,所以action中的属性就暴漏出来了* 2.获取页面上表单的元素,整合成一个map * 3.调用setValue方法赋值*/ 1 package cn.itcast.struts2.sh; 2 3

android ListView美化-->几个比较特别的属性

由于这两天在做listView的东西,所以整理出来一些我个人认为比较特别的属性,通过设置这样的属性可以做出更加美观的列表首先是stackFromBottom属性,这只该属性之后你做好的列表就会显示你列表的最下面,值为true和falseandroid:stackFromBottom="true"             第二是transciptMode属性,需要用ListView或者其它显示大量Items的控件实时跟踪或者查看信息,并且希望最新的条目可以自动滚动到可视范围内.通过设置的

linux 下查看文件的完整时间信息及三种时间属性

一.linux下查看文件的完整时间信息 1.Linux 下查看文件时,ls –l 缺省是不显示秒的: # ls -l /etc/ total 0 -rw-r--r--.  1 root   root         16 Jan  5 09:43 adjtime -rw-r--r--.  1 root   root       1518 Jun  7  2013 aliases 2.要显示秒(实际更精确),可以用 –full-time 参数: # ls -l /etc/ --full-time

(转载)Android之三种网络请求解析数据(最佳案例)

[置顶] Android之三种网络请求解析数据(最佳案例) 2016-07-25 18:02 4725人阅读 评论(0) 收藏 举报  分类: Gson.Gson解析(1)  版权声明:本文为博主原创文章,未经博主允许不得转载. 目录(?)[+] 小武:相信大家都用过网络请求解析数据,只是方法不一样而已,但是,逻辑都是差不多的: 一:AsyncTask解析数据 AsyncTask主要用来更新UI线程,比较耗时的操作可以在AsyncTask中使用. AsyncTask是个抽象类,使用时需要继承这个

Android技术14:Android中layout_weight属性解析

为了更好的对空间进行布局,在LinearLayout中使用layout_weight,然后对于这一属性,在有些书上或者Android的初学者直接认为layout_weight值越大,控件权重就越大,所占用的空间就越大或者layout_wight值越小,控件空间就越大.这两种都是片面的,没有真正认识到layout_weight含义以及如何布局.下面首先演示使用代码为什么会有这两种感觉. 1.演示权重成反比 LinearLayout设置水平布局,然后里面空间宽度为fill_parent,layout

【转】UML中的几种关系详细解析

UML图中类之间的关系:依赖,泛化,关联,聚合,组合,实现 类与类图 1) 类(Class)封装了数据和行为,是面向对象的重要组成部分,它是具有相同属性.操作.关系的对象集合的总称. 2) 在系统中,每个类具有一定的职责,职责指的是类所担任的任务,即类要完成什么样的功能,要承担什么样的义务.一个类可以有多种职责,设计得好的类一般只有一种职责,在定义类的时候,将类的职责分解成为类的属性和操作(即方法). 3) 类的属性即类的数据职责,类的操作即类的行为职责 一.依赖关系(Dependence) 依