zoukankan      html  css  js  c++  java
  • ListView技巧

    1)复用convertView
    ListView在需要显示Item的时候,会首先检查回收站里是否有缓存的item,如果发现有缓存的item,ListView会直接复用它,把它作为参数传递给Adapter的getView方法,参数名为convertView。
    所以如果convertView不为空,表明回收站中存在可以复用的Item,就不需要在创建新的Item了。
    这种View复用的方式适用于单一Item视图和多种Item视图的情况,在之前的例子中已经提到过,可以参考以前的讲解。

    2)使用ViewHolder
    在Android中,在操作一个控件的时,首先需要通过findViewById从控件树中找到它,然后才能对它进行操作。而对于ListView中的Item布局文件的解析式重复性的,因此每次都执行findViewById方法非常耗时。
    常用的做法是定义一个ViewHolder类来缓存查找后的控件引用,这样只需要在初始化的时候查找一次,以后对控件的操作都可以直接从ViewHolder中获取。
    其中,通过setTag和getTag的方式来存储和获取ViewHolder。省去了每次执行findViewById的时间

    3)刷新ListView的数据
    Adapter处于ListView和数据的中间,当有数据变化时需要Adapter通知ListView刷新显示的内容。Adapter 提供了notifyDataSetChanged()和notifyDataSetInvalidated()两个方法通知ListView刷新。当有数据更新时调用notifyDataSetChanged方法,当数据完全无效时调用notifyDataSetInvalidated方法。

    4)Header和Footer
    ListView除了显示Item以为,还可以显示Header和Footer。ListView提供了addHeaderView和addFooterView方法添加Header和Footer。需要注意的是:必须在给ListView设置Adapter之前,调用这两个方法添加header或者footer,否则会抛出异常。

    5)使用selector美化listView
    通过设置ListView的listSelector属性,可以为listView的Item设置选中,点击等显示效果。在Android中可以使用listView的setSelector方法或者在xml文件中设置android:listSelector属性来设置ListView的selector属性。还可以设置ListView的android:drawSelectorOnTop属性,把selector绘制在item背景之后。

    6)在ListView的Item之间显示分割线
    通过ListView的android:divider属性或者setDivider方法可以修改Item之间的分割线。也可以给android:divider属性设置图片、颜色,或者设置为@drawable/@null(表示无分割线)。在使用android:divider属性时,同时还可以使用dividerHeight属性设置分割线占据的高度。

    7)使用transcriptMode和stackFromBottom属性
    ListView有两个比较特殊的属性android:transcriptMode和android: stackFromBottom。使用transcriptMode属性可以在有数据变化的时候让listView自动滚动到底部。transcriptMode可设置为一下三个不同的值:
    disabled:禁用transcriptMode属性;
    normal:如果最后一个item可见,滚动到底部;
    alwaysScroll:总是自动滚动到底部;
    使用stackFromBottom属性可以设置item从底部向上开始排列。通常在聊天、短信类型的应用中使用stackFromBottom和transcriptMode属性可以得到很好的显示效果。

    详见:http://www.devdiv.com/Android-ListView%E7%9A%84%E4%BD%BF%E7%94%A8%E6%8A%80%E5%B7%A7-thread-124257-1-1.html

  • 相关阅读:
    TF-IDF
    线性回归梳理
    snappy 在linux安装及使用
    Hbase 写入机制详解与MVCC机制
    phoenix二级索引源码阅读
    利用SET工具制造钓鱼网站
    jQuery框架漏洞全总结及开发建议
    DDE注入(CSV)漏洞原理及实战案例全汇总
    burp插件大全 漏洞扫描 waf绕过 sql XSS 命令注入 fuzzer
    点击劫持(ClickJacking)漏洞挖掘及实战案例全汇总
  • 原文地址:https://www.cnblogs.com/chinaxxren/p/3323380.html
Copyright © 2011-2022 走看看