浅谈Android开发中ListView控件性能的一些优化方法

2019-12-10 19:15:52刘景俊

4.将ListView的scrollingCache和animateCache设置为false

scrollingCache:scrollingCache本质上是drawing cache,你可以让一个View将他自己的drawing保存在cache中(保存为一个bitmap),这样下次再显示View的时候就不用重画了,而是从cache中取出。默认情况下drawing cahce是禁用的,因为它太耗内存了,但是它确实比重画来的更加平滑。而在ListView中,scrollingCache是默认开启的,我们可以手动将它关闭。

animateCache:ListView默认开启了animateCache,这会消耗大量的内存,因此会频繁调用GC,我们可以手动将它关闭掉

优化前的ListView

<android:id="@android:id/list"

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:cacheColorHint="#00000000"

android:divider="@color/list_background_color"

android:dividerHeight="0dp"

android:listSelector="#00000000"

android:smoothScrollbar="true"

android:visibility="gone"/>

优化后的ListView

<android:id="@android:id/list"

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:divider="@color/list_background_color"

android:dividerHeight="0dp"

android:listSelector="#00000000"

android:scrollingCache="false"

android:animationCache="false"

android:smoothScrollbar="true"

android:visibility="gone"/>

5.减少item的布局的深度

我们应该尽量减少item布局深度,因为当滑动ListView的时候,这回直接导致测量与绘制,因此会浪费大量的时间,所以我们应该将一些不必要的布局嵌套关系去掉。减少item布局深度

6.使用ViewHolder