一种实现列表控件的处理方法技术

技术编号:36693470 阅读:9 留言:0更新日期:2023-02-27 20:03
本发明专利技术涉及嵌入式GUI技术领域,具体为一种实现列表控件的处理方法,包括步骤S001,通过FlyThings IDE上设置好列表控件的属性参数;步骤S002,调用refreshListView请求刷新列表控件,触发列表控件重绘动作,回调ZKListView::onDraw重绘接口;步骤S003,列表控件上更新数据需引入ZKListView::AbsListAdapter适配器;步骤S004,AbsListAdapter的getListItemCount接口说明,通过getListItemCount接口说明的返回值表示列表总共有多少项。列表总共有多少项。列表总共有多少项。

【技术实现步骤摘要】
一种实现列表控件的处理方法


[0001]本专利技术涉及嵌入式GUI
,具体为一种实现列表控件的处理方法。

技术介绍

[0002]目前嵌入式GUI大部分还是按钮、文本、进度条这些展示方式,涉及到多数据展示时,则操作需要使用大量的文本、按钮控件去处理,并且这种方式还有它的局限性,比如不支持滑动查看更多的内容;因此为了实现操作方便,及可以实现支持滑动查看更多的内容,在此引入列表控件,来解决多数据展示的应用场景。

技术实现思路

[0003]本专利技术的目的在于提供一种实现列表控件的处理方法,以解决上述
技术介绍
所提出的技术问题。
[0004]为实现上述目的,本专利技术广泛应用嵌入式GUI的技术方案,特别是提供如下技术方案:一种实现列表控件的处理方法,包括以下步骤:
[0005]步骤S001,通过FlyThings IDE上设置好列表控件的属性参数;
[0006]步骤S002,调用refreshListView请求刷新列表控件,触发列表控件重绘动作,回调ZKListView::onDraw重绘接口;
[0007]步骤S003,列表控件上更新数据需引入ZKListView::AbsListAdapter适配器,列表里边的数据是通过适配器填充好获取的,需继承AbsListAdapter实现getListItemCount接口、obtainListItemData接口;
[0008]步骤S004,实现getListItemCount接口的返回值,表示列表总共有多少项;实现obtainListItemData接口的参数pListItem为列表项指针,index为对应第几项索引;
[0009]步骤S005,适配器填充好后,需将setListAdapter设置到列表控件;
[0010]步骤S006,绘制列表控件,依次调用drawListView画列表项,并回调定义好的适配器填充好每一项的数据内容,并绘制出可见区域的列表项。
[0011]优选的,所述实现列表控件的处理方法还包括:
[0012]步骤S007,将绘制图片的情况引入了引用计数算法,以图片的路径作为关键key,图片内容bitmap作为value,加载图片时,先检测是否存在容器里边。
[0013]优选的,在所述的步骤S007中,加载图片存在容器里边时,则引用计算累加1,并返回对应的value。
[0014]优选的,在所述的步骤S007中,加载图片不存在容器里边时,加载出图片bitmap内容,引用计数置为1,并加入容器里边。
[0015]优选的,所述实现列表控件的处理方法还包括:
[0016]步骤S008,列表响应触摸事件,点击列表时判断坐标落在哪一子项上并记录,移动触摸,计算出列表项偏移值,并对列表进行重绘制,其中绘制流程如步骤S002至步骤S006。
[0017]优选的,所述实现列表控件的处理方法还包括:
[0018]步骤S009,从按下滑动到抬起,都将触摸事件的坐标及时间加到VelocityTracker::addMovement用于计算抬起瞬间速度值;
[0019]其中,瞬间速度值计算公式为:v = s / t 得到速度值。
[0020]优选的,在所述步骤S009中,所述通过瞬间速度值,可以进行惯性移动,每次按0.95比例减小速度,并计算出移动距离,移动列表项。
[0021]优选的,所述实现列表控件的处理方法还包括:步骤S010,捕获列表项点击事件,需要继承ZKListView::IItemClickListener实现onItemClick接口,点击了列表中的某一项,会触发onItemClick事件。
[0022]优选的,在所述步骤S001中,列表控件的属性参数包括:坐标位置、列表项数、拖拽效果,并由列表控件解析属性参数,创建ZKListItem列表项及子项。
[0023]优选的,在所述步骤S002中,回调ZKListView::onDraw重绘接口,其接口里边执行drawBackground画背景、drawListView画列表项内容、drawScrollbar画滚动条。
[0024]与现有技术相比,本专利技术的有益效果是:
[0025](1)、本专利技术通过步骤S001至步骤S006,实现了列表控件的处理,并通过提供数据的AbsListAdapter适配器,继承实现相应的接口,列表控件有更新情况,会自动调用填充数据;
[0026](2)、本专利技术通过绘制图片的情况引入了引用计数算法,以图片的路径作为关键key,图片内容bitmap作为value,加载图片时先检测是否存在容器里边,存在的情况下,引用计算累加1,并返回对应的value,不存在情况下,加载出图片bitmap内容,引用计数置为1,并加入容器里边;对于存在绘制重复图片的情况,这种算法可以大大减少图片的内存,并提升绘制效率;
[0027](3)、本专利技术通过从按下滑动到抬起,都将触摸事件的坐标及时间加到VelocityTracker::addMovement用于计算抬起瞬间速度值,计算公式为:v = s/ t 得到速度值;依靠这个速度值进行惯性移动,每次按0.95比例减小速度,并计算出移动距离,移动列表项;利用惯性移动列表项,使得交互更细腻,更平滑。
附图说明
[0028]图1为本专利技术的其一实现列表控件的处理方法流程示意图;
[0029]图2为本专利技术的其二实现列表控件的处理方法流程示意图;
[0030]图3为本专利技术的适配器使用流程示意图;
[0031]图4为本专利技术的列表项点击事件流程示意图;
[0032]图5为本专利技术的绘制流程示意图。
具体实施方式
[0033]下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。
[0034]请参阅图1至图5所示,为本专利技术中一种实现列表控件的处理方法。
[0035]步骤S001,为了实现列表控件的构建,所述通过FlyThings IDE上设置好列表控件的属性参数,如:坐标位置、列表项数、拖拽效果等等;由列表控件解析属性参数,创建ZKListItem列表项及子项;
[0036]步骤S002,为了实现列表控件绘图的工作,所述调用refreshListView请求刷新列表控件,触发列表控件重绘动作,回调ZKListView::onDraw重绘接口,接口里边执行drawBackground画背景、drawListView画列表项内容、drawScrollbar画滚动条;
[0037]步骤S003,为了提供填充数据的渠道,所述列表控件上更新数据需引入ZKListView::AbsListAdapter适配器,列表里边的数据是通过适配器填充好获本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种实现列表控件的处理方法,其特征在于:包括以下步骤:步骤S001,通过FlyThings IDE上设置好列表控件的属性参数;步骤S002,调用refreshListView请求刷新列表控件,触发列表控件重绘动作,回调ZKListView::onDraw重绘接口;步骤S003,列表控件上更新数据需引入ZKListView::AbsListAdapter适配器,列表里边的数据是通过适配器填充好获取的,需继承AbsListAdapter实现getListItemCount接口、obtainListItemData接口;步骤S004,实现getListItemCount接口的返回值,表示列表总共有多少项;实现obtainListItemData接口的参数pListItem为列表项指针,index为对应第几项索引;步骤S005,适配器填充好后,需将setListAdapter设置到列表控件;步骤S006,绘制列表控件,依次调用drawListView画列表项,并回调定义好的适配器填充好每一项的数据内容,并绘制出可见区域的列表项。2.根据权利要求1所述的一种实现列表控件的处理方法,其特征在于:所述实现列表控件的处理方法还包括:步骤S007,将绘制图片的情况引入了引用计数算法,以图片的路径作为关键key,图片内容bitmap作为value,加载图片时,先检测是否存在容器里边。3.根据权利要求2所述的一种实现列表控件的处理方法,其特征在于:在所述的步骤S007中,加载图片存在容器里边时,则引用计算累加1,并返回对应的value;在所述的步骤S007中,加载图片不存在容器里边时,加载出图片bitmap内容,引用计数置为1,并加入容器里边。4.根据权利要求3所述的一种...

【专利技术属性】
技术研发人员:钟广沛郭修胜彭宗财
申请(专利权)人:深圳市中科世为科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1