[发明专利]一种ViewGroup动态布局方法、装置及电子设备有效
申请号: | 201810601454.2 | 申请日: | 2018-06-12 |
公开(公告)号: | CN108958831B | 公开(公告)日: | 2021-10-15 |
发明(设计)人: | 王龙 | 申请(专利权)人: | 北京奇艺世纪科技有限公司 |
主分类号: | G06F9/445 | 分类号: | G06F9/445;G06F9/451 |
代理公司: | 北京柏杉松知识产权代理事务所(普通合伙) 11413 | 代理人: | 项京;马敬 |
地址: | 100080 北京市海淀区*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 viewgroup 动态 布局 方法 装置 电子设备 | ||
本发明实施例提供了一种ViewGroup动态布局方法、装置及电子设备。其中,所述方法包括:主线程在检测到对ViewGroup的视图区域完成控件布局时,向预加载线程发送预加载通知,以使得预加载线程在接收到预加载通知时,对至少一个待布局控件进行预加载,并将预加载的至少一个待布局控件存储至第一缓存区;当检测到所述ViewGroup的视图区域内的内容发生滚动时,从所述第一缓存区中,获得与本次滚动过程相匹配的至少一个目标控件;在所述ViewGroup的视图区域中,根据预设的布局方式布局所述至少一个目标控件。应用本方案,可以减少主线程耗时,降低丢帧现象发生的概率。
技术领域
本发明涉及计算机程序应用技术领域,特别是涉及一种ViewGroup动态布局方法、装置及电子设备。
背景技术
为了能够更好地管理应用界面中各个控件,现有针对控件的布局方式共有五种,分别是:线性布局(LinearLayout)、表格布局(TableLayout)、帧布局(FrameLayout)、相对布局(RelativeLayout)和绝对布局(AbsoluteLayout)。上述各布局之间可以互相嵌套,所有的布局方式都可以归类为ViewGroup的5个类别,即ViewGroup的5个直接子类(也就是上述的五种布局方式),其它的一些布局都可以扩展自这5个类。
现有技术中,用于页面布局的主线程对ViewGroup的视图区域进行控件布局,并且每次布局一屏控件,即视图区域能够显示几个控件便布局几个控件。在每次完成视图区域的控件布局后,如果检测到视图区域中的内容发生滚动时,该主线程则创建待布局控件,初始化所创建的待布局控件,进而将初始化后的待布局控件布局在视图区域中。由于待布局控件的创建和初始化过程需要处理的数据量较大,会消耗一定时间,这样导致加载过程中,会出现超时现象,进而导致容易出现丢帧现象。
发明内容
本发明实施例的目的在于提供一种ViewGroup动态布局方法、装置及电子设备,以通过控件预加载的方式,减少主线程耗时,降低丢帧现象发生的概率。具体技术方案如下:
第一方面,本发明实施例提供了一种ViewGroup动态布局方法,所述方法包括:
主线程在检测到对ViewGroup的视图区域完成控件布局时,向预加载线程发送预加载通知,以使得预加载线程在接收到预加载通知时,对至少一个待布局控件进行预加载,并将预加载的至少一个待布局控件存储至第一缓存区;
当检测到所述ViewGroup的视图区域内的内容发生滚动时,从所述第一缓存区中,获得与本次滚动过程相匹配的至少一个目标控件;
在所述ViewGroup的视图区域中,根据预设的布局方式布局所述至少一个目标控件。
可选的,所述对至少一个待布局控件进行预加载,包括:
确定所述视图区域中当前所布局的末尾控件;
将预先指定的、所述末尾控件之后的连续第一目标数量个控件,作为第一目标数量个待布局控件;
创建并初始化所述第一目标数量个待布局控件。
可选的,所述创建并初始化所述第一目标数量个待布局控件,包括:
创建所述第一目标数量个待布局控件;
以所述末尾控件的第一位置标识的下一位置标识为起始位置标识,设置所创建的第一目标数量个待布局控件的位置标识,并对所创建的第一目标数量个待布局控件进行类型标识和数据绑定。
可选的,所述获得与本次滚动过程相匹配的至少一个目标控件,包括:
获得与本次滚动过程的滚动高度相匹配的至少一个目标控件。
可选的,所述对至少一个待布局控件进行预加载,包括:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京奇艺世纪科技有限公司,未经北京奇艺世纪科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201810601454.2/2.html,转载请声明来源钻瓜专利网。