读书人

日就月将:ListView的属性详解和探究

发布时间: 2013-10-08 16:38:32 作者: rapoo

日积月累:ListView的属性详解和探究

在我们的日常开发中,ListView是一个最常用的组件,所以我们非常有必要对它的属性进行全面的了解。现在就以一个简单的实例,对ListView的属性做一个简单的讲解。

首先我们给出简单的布局文件,就一个简单的ListView列表:

Activity文件,使用ArrayAdapter对列表进行填充:

运行效果如下:

日就月将:ListView的属性详解和探究

接下来我们在布局的ListView中添加如下属性,并演示其效果。


在ListView和GridView中使用,使它们的内容从底部开始显示。

布局文件修改如下:

运行效果如下,列表在开始的时候,内容就从底部开始显示:

日就月将:ListView的属性详解和探究

设置列表的transcriptMode模式,该模式指定列表添加新的选项的时候,是否自动滑动到底部,显示新的选项。

disabled:取消transcriptMode模式,默认的

normal:当接受到数据集合改变的通知,并且仅仅当最后一个选项已经显示在屏幕的时候,自动滑动到底部。

alwaysScroll:无论当前列表显示什么选项,列表将会自动滑动到底部显示最新的选项。

布局修改如下:

Activity文件代码如下:

运行结果如下: 

日就月将:ListView的属性详解和探究

6秒后的结果(每当添加新的表项的时候,列表自动滑动的底部显示最新的表项)

日就月将:ListView的属性详解和探究

其它两个normal和disable属性就不在演示,如上已经解释的比较清楚,大家可以自己试验感受一下。

该属性在官方文档和个资料中找不到比较好的描述;根据实际的体验,当你设置的ListView的背景时,应该设置该属性为“#00000000”(透明),不然在滑动的时候,列表的颜色会变黑或者背景图片小时的情况!

列表之间绘制的颜色或者图片。一般开发中用于分隔表项。

在实际开发过程中,如果你不想要列表之间的分割线,可以设置属性为@null,布局文件如下:

运行结果如下:

日就月将:ListView的属性详解和探究

布局文件如下:

运行效果如下:

日就月将:ListView的属性详解和探究

启用快速滑动条,它能快速的滑动列表。但在实际的测试中发现,当你的数据比较小的时候,是不会显示快速滚动条。

布局文件如下:

运行结果如下(当你快速滑动列表的时候,就出现如下快速滑动滚动条):

日就月将:ListView的属性详解和探究

listSelector用来指明列表当前选中的选项的图片

布局文件如下:

运行结果如下(当用手指点击ListItem3的时候,出现如下效果,图片显示在ListItem3的底部,并未遮挡ListItem3):

日就月将:ListView的属性详解和探究

当设置为true时候,listSelector的图片将会被绘制在被选中的选项之上。

布局文件如下:

运行结果如下(对比上面,发现图片遮挡了ListItem3的显示):

日就月将:ListView的属性详解和探究

定义了列表的选择行为,默认的情况下,列表没有选择行为。

none:正常不指定选择的列表

singleChoice:列表允许一个选择

multipleChoice:列表允许选择多个

mutipleChoiceModal:

布局文件如下:

Activity文件如下:

public class MainActivity extends Activity {     private ListView listView;     @Override     protected void onCreate(Bundle savedInstanceState) {         super.onCreate(savedInstanceState);         setContentView(R.layout.activity_main);         listView = (ListView) findViewById(R.id.listView1);         final List<String> adapterData = new ArrayList<String>();         for (int i = 0; i < 40; i++) {             adapterData.add("ListItem" + i);         }         //只有使用支持选择的布局才能选择多项         ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_checked, adapterData);         listView.setAdapter(adapter);         listView.setFastScrollEnabled(true);     } } 

运行结果如下(点击多个选项),关于nono和singleChoice可以自己尝试一下:

日就月将:ListView的属性详解和探究
2楼ameryzhu昨天 20:47
Mark.
1楼xiao__gui前天 10:14
android:choiceMode属性n为什么我设置以后没有图片上的那样再列表项右边显示√
Re: p106786860前天 10:18
回复xiao__guin你的List的布局有没有设置为android.R.layout.simple_list_item_checked
Re: xiao__gui前天 10:32
回复p106786860n谢谢

读书人网 >移动开发

热点推荐