android ListView的优化之 static ViewHolder
2013-07-21 22:45
567 查看
关于如何写出高效的ListView,我就不写了官方和网上都有很多的例子了。
我这里要记录的是为什么ViewHolder这个类的修饰符是static的?难道就不能是非static的吗?
为了解决这个问题,网上搜了不少资料。最后的还是归结到了Java的语法上(基础不够扎实啊,正好补补了)。
那就是内部类和静态内部类的区别。。。。。。。。。。。。
例:
内部类:
InnerClass是一个内部类,该内部类是外部类OuterClass的一个成员。该InnerClass可以在该外部类内访问它的成员变量,即使是被private修饰的变量。而StaticNestedClass是一个静态内部类,它则不能访问OuterClass的成员变量。InnerClass作为OuterClass的一个成员,可以被任何访问修饰符所修饰。但是记住,外部类OuterClass只能被public或者默认的包访问符修饰。
静态内部类:
我这里要记录的是为什么ViewHolder这个类的修饰符是static的?难道就不能是非static的吗?
为了解决这个问题,网上搜了不少资料。最后的还是归结到了Java的语法上(基础不够扎实啊,正好补补了)。
那就是内部类和静态内部类的区别。。。。。。。。。。。。
例:
class OuterClass { ... static class StaticNestedClass { ... } class InnerClass { ... } } 以上面的例子讲述,
内部类:
InnerClass是一个内部类,该内部类是外部类OuterClass的一个成员。该InnerClass可以在该外部类内访问它的成员变量,即使是被private修饰的变量。而StaticNestedClass是一个静态内部类,它则不能访问OuterClass的成员变量。InnerClass作为OuterClass的一个成员,可以被任何访问修饰符所修饰。但是记住,外部类OuterClass只能被public或者默认的包访问符修饰。
静态内部类:
StaticNestedClass 这个静态内部类无法直接访问外部类OuterClass的任何方法或者变量,只能通过外部类对象的引用才可以访问它们。 那么为什么要使用内部类呢? 有以下三个主要的原因: It is a way of logically grouping classes that are only used in one place. 当某个类只被一个类使用时,将该类嵌在另一个类的内部保持两个类一起在一个文件中也是很合乎逻辑的。 另外,这样将类内嵌进来也是一种对包的精简,因为不必在外新建文件。 It increases encapsulation. 增强了封装性,对外界来说是透明的。 Nested classes can lead to more readable and maintainable code. 增强代码的可读性和可维护性。 分割线======================================================= 回到本文的标题,在写ListView优化中,ViewHolder的作用只是保存TextView,ImageView等对象的引用, 避免多次调用昂贵的findViewById(),而完全不需要访问到外部类的成员变量和方法,因此用 static修饰该类即可。
相关文章推荐
- Android ListView优化之getView频繁多次调用与ViewHolder工作原理
- Android BaseAdapter和ViewHolder 优化 解决ListView的item抢焦点问题和item错乱问题
- Android学习之 listview加载性能优化ViewHolder
- Androidx学习笔记(35)---新闻客户端之ListView显示新闻内容&ViewHolder优化
- Android之ListView性能优化——使用ConvertView和ViewHolder
- Android常用控件ListView的简单优化之一: 在ViewHolder中定义static静态内部类
- Android - ViewHolder优化ListView
- Android BaseAdapter和ViewHolder 优化 解决ListView的item抢焦点问题和item错乱问题
- Android性能优化之Listview(ViewHolder重用机制)
- android ListView使用ViewHolder优化时,EditText设置TextWatcher时,滑动ListView导致内容错乱
- Android UI基础——ListView性能优化ViewHolder
- android ListView优化之ViewHolder的超简洁写法
- Android性能优化之Listview(ViewHolder重用机制)
- Android ListView的性能优化(ViewHolder和HashMap)
- Android性能优化之Listview(ViewHolder重用机制)
- Android中优化ListView的ViewHolder模式
- Android:ListView 使用 viewholder 性能优化(Listview工作原理)
- Android ListView优化 如何省略ViewHolder方法
- ListView 优化之---ViewHolder static修饰符
- Android ListView适配器Adapter的使用,item的复用和ViewHolder优化