Listview可以说是安卓最重要的控件之一,优化方法也非常多。
在网上搜索一番,并没有找到十分全面详细的优化方法。下面是自己对LIstview优化的总结。
1、使用Convertview+ViewHolder
2、尽量简化ItemView layout的层级,必要时可以使用自定义View.
3、保证Listview滑动的流畅性,getview()中减少耗时操作。注意:滑动时不要加载图片,停下时再加载。
4、Adapter 的 hasStableIds() 返回 true。notifyDataSetChanged() 的时候,如果 id 不变,ListView 将不会重新绘制这个 ItemView。
5、尝试用Recyclerview替换Listview,此控件是升级版的Listview。更高的解耦性,布局更灵活。
6、内存换时间,在有图片的时候。可以使用图片缓存、图片压缩、异步加载图片等方法。
7、使用分页加载。
(
8、ListView 中元素避免半透明
半透明绘制需要大量乘法计算,在滑动时不停重绘会造成大量的计算,在比较差的机子上会比较卡。在设计上能不半透明就不不半透明。实在要弄的话我个人是用个比较偷懒的方法,是在滑动的时候把半透明设置成不透明,滑动完再重新设置成半透明。
9、 尽量开启硬件加速
硬件加速提升巨大,避免使用一些不支持的函数导致含泪关闭某个地方的硬件加速。当然这一条不只是对 ListView。
10、每个 Item 不能太高
9、 尽量开启硬件加速
硬件加速提升巨大,避免使用一些不支持的函数导致含泪关闭某个地方的硬件加速。当然这一条不只是对 ListView。
10、每个 Item 不能太高
特别是不要超过屏幕的高度,可以参考 Facebook 的优化方法,把特别复杂的 Item 分解成若干小的 Item,特别推荐看一下这个文章:https://code.facebook.com/posts/879498888759525/fast-rendering-news-feed-on-android/
)
括号中的8-9条是参考别人的文章总结的,下面对每一条做详细解释。
======================================================================================================================
7、使用分页加载。
步骤:添加提示下拉加载更多的布局。监听Listview已经滚动到最底端。加载数据。