美文网首页
ViewHolder加载速度优化

ViewHolder加载速度优化

作者: 比尔王BillWang | 来源:发表于2017-06-27 17:49 被阅读0次

在新闻类APP的开发过程中,肯定会遇到很多上下部分布局相似,但是中间的功能却有些区别的需求。比如同样是一条新闻,有些新闻有视频、有些新闻有图片、有些新闻又只有文字。

按照自己项目中的情况,有好几种类型的控件都是放在了一个VIewHolder中。这样一来如果使用同一种ViewHolder,RecyclerView在复用的时候就会出现一些情况,本身没有视频的ViewHolder出现了视频控件、本身只有文字的新闻会出现图片,而且还有可能ViewHolder在初始化的时候明明用不到视频控件,却对它进行了初始化,导致浪费了时间,造成卡顿。

在RecyclerView 中是根据ViewHolder来进行复用的,如果一种ViewHolder中的控件足够少,那么它的初始化时间也就少。

至于担心太多类型的ViewHolder导致加载速度慢的问题,可以自己建一个JAVA测试下switch(int)的速度。

例如:

信息流页面经常会有一些类似的结构

链接帖 文章帖 顶部显示用户信息

相似的地方:
顶部都有用户信息、标题、内容。
底部是时间信息、评论数、阅读数

不同的地方:
中间可能有图片、链接帖信息、文件帖信息、视频等等结构。

XML文件结构:

<include/>//头部结构
<ViewStub/>//中间的结构
<ViewStub/>//中间的结构
......//可能很多
<include/>//底部结构

在使用的时候顶部和底部统一处理(可以使用继承的方式),然后不同的ViewHolder初始化不同的ViewStub。

这样不同的ViewHolder能够用统一的布局,在修改上边与下边布局的时候不会影响到中间,并且也不会漏改文件。同时,中间的布局只有对应的ViewHolder才会初始化,并不占用内存。

ViewStub使用

相关文章

  • ViewHolder加载速度优化

    在新闻类APP的开发过程中,肯定会遇到很多上下部分布局相似,但是中间的功能却有些区别的需求。比如同样是一条新闻,有...

  • android viewHolder

    MainActivity.java ViewHolder性能优化

  • 常见面试题--js+css+vue

    1、变量提升、函数提升 2、数组的常用方法 3.优化首屏加载速度 4.Vue 首屏加载速度优化 5、Vue如何设置...

  • Vue项目总结

    (一)vue 1.页面加载速度优化 可在页面引入组件时引入异步加载的方式使加载速度变快export default...

  • 如何优化网站的加载速度

    优化网站加载速度方式分类 减少http请求 提升http加载速度使用CDN 内容分发网络TCP/IP 、HTTP优...

  • Web 前端性能优化概要

    优化方向 页面加载速度。 代码运行速度。 优化的方法 指定优化目标。目标需要是具体的,可度量的。比如,在 50Kb...

  • 网页速度优化实战

    Nuxt 速度优化实战 背景是谷歌统计移动端网页加载速度在 10s 左右,所以优化一波,整体优化下来能优化到 7s...

  • 前端性能优化

    优化项目加载速度,首屏渲染速度。 html优化使用 声明减少嵌套层级减少不必要的Dom元素标签...

  • Android ListView优化思路12则

    1、ViewHolder模式,而且ViewHolder作为内部类使用时声明为static的 2、异步加载:耗时的操...

  • HTML加载速度优化

    发现一篇不错的文章,记录下:原文链接:移动 H5 首屏秒开优化方案探讨

网友评论

      本文标题:ViewHolder加载速度优化

      本文链接:https://www.haomeiwen.com/subject/qgmecxtx.html