[发明专利]一种加快安卓列表显示速度的方法有效

专利信息
申请号: 202011171678.8 申请日: 2020-10-28
公开(公告)号: CN112272329B 公开(公告)日: 2023-02-28
发明(设计)人: 王琦;魏代邦;张晓刚 申请(专利权)人: 海看网络科技(山东)股份有限公司
主分类号: H04N21/431 分类号: H04N21/431;H04N21/472;H04N21/81;H04N21/485
代理公司: 济南华典专利代理事务所(普通合伙企业) 37293 代理人: 李景华
地址: 250000 山东省济南*** 国省代码: 山东;37
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 一种 加快 列表 显示 速度 方法
【权利要求书】:

1.一种IPTV应用中加快Android列表显示速度的方法,其特征在于:包括:

列表的布局采用GridLayoutManager布局管理器,初始焦点落在第一个元素上;

通过自定义列表类BaseRecyclerView,修改焦点移动时的处理逻辑,所述处理逻辑为,当焦点发生移动时,通过偏移量算法获得滚动的偏移量,并立即触发滚动,通过自定义列表类BaseRecyclerView处理滚动的方法,使得在每次焦点移动完成后,下一次焦点移动后可能获取焦点的元素,已出现在可视区域之内,并结合Glide的处理方式,在长按键的按下时暂停元素的加载,抬起时继续元素的加载,具体过程为:

通过重写focusSearch方法,可以监听焦点移动事件,并获得下一个焦点元素;

通过重写scrollBy和smonthScrollBy方法,阻断焦点移动引起的默认滚动逻辑,其方法为,同时为BaseRecyclerView声明一个布尔类型的状态变量isLongPress,用于记录是否处于长按状态,通过Android的按键监听方法,可以得知当前是否处于长按状态,如果当前是一次长按事件,即isLongPress为true,则调用RecyclerView的scrollBy方法,执行非平滑滚动;如果不是一次长按事件,即isLongPress为false,则调用RecyclerView的smoonthScrollBy方法,执行平滑滚动,通过调用不同的方式,保证在长按时滚动的不卡顿,以及在单次按键时滚动的流畅性;

当焦点发生移动时,下一个焦点元素已处于可视区域,通过偏移量算法获得滚动的偏移量;

通过调用RecyclerView的smoonthScrollBy平滑滚动方法,实现滚动偏移量;

为BaseRecyclerView添加OnScrollListener滚动监听器,以监听列表的滚动状态;

Glide的处理方式为,当列表处于滚动状态时,调用Glide的暂停加载方法,暂停加载所有元素;首先将长按键状态变量isLongPress设置为false,即当列表滚动停止时,一次长按键必然已结束,同时通过Glide的方法恢复元素加载,为自定义列表类BaseRecyclerView在当前可视区域内的列表项,加载元素;

当根据计算的偏移量进行滚动时,如果当前处于长按状态,则调用scrollBy而非smoonthScrollBy,以获得更流畅的滑动效果。

2.根据权利要1所述的一种IPTV应用中加快Android列表显示速度的方法,其特征在于:所述自定义列表类BaseRecyclerView继承RecyclerView,列表的布局采用GridLayoutManager布局管理器,初始焦点落在第一个元素上。

3.根据权利要1所述的一种IPTV应用中加快Android列表显示速度的方法,其特征在于:所述列表的布局的第一个元素距离列表的左边的距离称为fitX,列表的第一个元素距离列表的上边的距离称为fitY,fitX和fitY初始化时的值为负一,列表的任一元素,距离左边的距离称为left,距离上边的距离称为top。

4.根据权利要3所述的一种IPTV应用中加快Android列表显示速度的方法,其特征在于:所述偏移量算法包括:

自定义列表类BaseRecyclerView的元素获取焦点;

从当前列表中获取第一个可见元素;

判断fitX和fitY是否都小于零,如果小于零,说明列表第一次获取焦点,该情况下列表的第一个元素会获取焦点,列表不需要发生滚动;根据列表的第一个可见元素,计算fitX和fitY的值,该步骤只会在列表首次获取焦点时执行一次,之后fitX或fitY都会大于等于零,执行完步骤后结束该算法;

当fitX和fitY至少有一个大于等于零时,需要计算列表的滚动距离,判断列表使用纵向还是横向布局,每种布局的滚动方向不同,计算对应滚动距离后,调用滚动方法。

5.根据权利要4所述的一种IPTV应用中加快Android列表显示速度的方法,其特征在于:当使用纵向布局时,比较焦点元素与列表上边的距离top,与fitY是否相等,如果相等说明焦点元素位于列表的第一行,不需要滚动,结束该算法;如果二者不相等,说明焦点元素不在列表的第一行,需要计算纵向滚动距离y:y=top–fitY;调用滚动方法,滚动的值为横向距离为0,纵向距离为y;

当使用横向布局时,比较焦点元素与列表左边的距离left,与fitX是否相等,如果相等说明焦点元素位于列表的第一列,不需要滚动,结束该算法;如果二者不相等,说明焦点元素不在列表的第一列,需要计算横向滚动距离x:x = left–fitX;同样调用滚动方法,滚动的值为横向距离为x,纵向距离为0。

下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于海看网络科技(山东)股份有限公司,未经海看网络科技(山东)股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/pat/books/202011171678.8/1.html,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top