基于Flutter动态页面的局部刷新方法和刷新装置制造方法及图纸

技术编号:36297860 阅读:44 留言:0更新日期:2023-01-13 10:12
本发明专利技术公开了一种基于Flutter动态页面的局部刷新方法和刷新装置,其中一实施例的局部刷新方法包括:根据在可视化配置器中设置的包括多个视图控件的Flutter动态页面形成所述Flutter动态页面的第一布局描述语句;根据Flutter渲染组件对所述第一布局描述语句进行渲染操作,获取各视图控件的控件标识、第一控件组件和控件元素,并建立包括各视图控件的控件标识和控件元素的第一数据结构;响应于用户对所述Flutter动态页面的操作获取更新数据并形成更新描述语句,根据所述更新描述语句建立各待更新视图控件的第二控件组件,并结合所述第一数据结构对所述Flutter动态页面进行局部刷新。刷新。刷新。

【技术实现步骤摘要】
基于Flutter动态页面的局部刷新方法和刷新装置


[0001]本专利技术涉及计算机应用软件
,特别是涉及一种基于Flutter动态页面的局部刷新方法、刷新装置、计算机可读存储介质和计算机设备。

技术介绍

[0002]在Flutter的开发过程中,局部刷新页面通常通过注册观察者模式来实现。具体的,先定义一个被观察的对象,然后再通过声明将观察的对象和视图控件做关联,当被观察对象的数据发生改变的时候通知观察的视图控件做视图层的数据刷新来实现页面的局部刷新。然而,这种方式通常使用在Flutter原生的页面开发种,如需要在DSL描述语言解释的时候来实现这个功能,导致代码开发的工作量增加,可实施性较差。

技术实现思路

[0003]为了解决上述问题至少之一,本专利技术第一方面提供一种基于Flutter动态页面的局部刷新方法,包括:
[0004]根据在可视化配置器中设置的包括多个视图控件的Flutter动态页面形成所述Flutter动态页面的第一布局描述语句;
[0005]根据Flutter渲染组件对所述第一布局描述语句进行渲染操作,获取各视图控件的控件标识、第一控件组件和控件元素,并建立包括各视图控件的控件标识和控件元素的第一数据结构;
[0006]响应于用户对所述Flutter动态页面的操作获取更新数据并形成更新描述语句,根据所述更新描述语句建立各待更新视图控件的第二控件组件,并结合所述第一数据结构对所述Flutter动态页面进行局部刷新。
[0007]进一步的,所述渲染操作包括第一渲染操作和第二渲染操作,所述根据Flutter渲染组件对所述第一布局描述语句进行渲染操作,获取各视图控件的控件标识、第一控件组件和控件元素,并建立包括各视图控件的控件标识和控件元素的第一数据结构进一步包括:
[0008]根据所述Flutter渲染组件对所述第一布局描述语句进行第一渲染操作生成第一页面视图、并建立第二数据结构,所述第二数据结构包括从所述第一布局描述语句中获取的各视图控件的控件标识和对应的第一控件组件;
[0009]根据所述Flutter渲染组件对所述第一页面视图进行第二渲染操作生成第二页面视图,获取各视图控件的控件元素和对应的第三控件组件;
[0010]根据所述第二数据结构、控件元素和对应的第三控件组件建立包括所述第一数据结构。
[0011]进一步的,所述根据所述Flutter渲染组件对所述第一布局描述语句进行第一渲染操作生成第一页面视图、并建立第二数据结构进一步包括:
[0012]建立具有key

value结构的所述第二数据结构;
[0013]遍历所述第一布局描述语句获取所有具有控件标识的第一控件组件,并将所述控件标识作为key、将对应的第一控件组件作为value存储在所述第二数据结构。
[0014]进一步的,所述根据所述Flutter渲染组件对所述第一页面视图进行第二渲染操作生成第二页面视图,获取各视图控件的控件元素和对应的第三控件组件进一步包括:
[0015]响应于监听的所述Flutter动态页面的第二渲染操作的完成,通过递归调用的方式遍历所述第二页面视图获取所述Flutter动态页面的所有控件元素和对应的第三控件组件。
[0016]进一步的,所述根据所述第二数据结构、控件元素和对应的第三控件组件建立包括所述第一数据结构进一步包括:
[0017]建立具有key

value结构的所述第一数据结构;
[0018]判断所述第三控件组件是否存在于所述第二数据结构中,若存在则将所述第三控件组件对应的控件标识作为key、将所述第三控件组件对应的控件元素作为value存储在所述第一数据结构。
[0019]进一步的,所述响应于用户对所述Flutter动态页面的操作获取更新数据并形成更新描述语句,根据所述更新描述语句建立各待更新视图控件的第二控件组件,并结合所述第一数据结构对所述Flutter动态页面进行局部刷新进一步包括:
[0020]响应于用户对所述Flutter动态页面的操作,遍历所述Flutter动态页面预设置的事件列表获取更新数据并形成更新描述语句,所述更新描述语句包括待更新视图控件的控件标识;
[0021]根据所述更新描述语句建立各待更新视图控件的第二控件组件,所述第二控件组件与所述控件标识对应;
[0022]分别根据各第二控件组件对应的控件标识从所述第一数据结构获取各待更新视图控件对应的控件元素,并利用各待更新视图控件的第二控件组件和控件元素对所述Flutter动态页面进行局部刷新。
[0023]进一步的,在所述响应于用户对所述Flutter动态页面的操作获取更新数据并形成更新描述语句,根据所述更新描述语句建立各待更新视图控件的第二控件组件,并结合所述第一数据结构对所述Flutter动态页面进行局部刷新之后,所述局部刷新方法还包括:
[0024]根据进行局部刷新后的所述Flutter动态页面获取第二布局描述语句,并使用所述第二布局描述语句更新所述第一布局描述语句。
[0025]进一步的,所述第一布局描述语句和更新描述语句为json字符串。
[0026]本专利技术第二方面提供一种基于Flutter动态页面的局部刷新装置,包括:
[0027]页面设置单元,用于根据在可视化配置器中设置的包括多个视图控件的Flutter动态页面形成所述Flutter动态页面的第一布局描述语句;
[0028]控件对应单元,用于根据Flutter渲染组件对所述第一布局描述语句进行渲染操作,获取各视图控件的控件标识、第一控件组件和控件元素,并建立包括各视图控件的控件标识和控件元素的第一数据结构;
[0029]局部刷新单元,用于响应于用户对所述Flutter动态页面的操作获取更新数据并形成更新描述语句,根据所述更新描述语句建立各待更新视图控件的第二控件组件,并结合所述第一数据结构对所述Flutter动态页面进行局部刷新。
[0030]本专利技术第三方面提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如第一方面所述的方法。
[0031]本专利技术第四方面提供一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如第一方面所述的方法。
[0032]本专利技术的有益效果如下:
[0033]本专利技术针对目前现有的问题,制定一种基于Flutter动态页面的局部刷新方法和刷新装置,所述局部刷新方法基于Flutter渲染操作的特点,利用Flutter的渲染操作获取各视图控件的控件标识和控件组件的对应关系,以及获取各视图控件的控件元素和控件组件的对应关系,进而建立包括各视图控件的控件标识和控件元素的数据结构,从而在局部刷新操作后,通过建立新的控件组件、并利用未变化的控件标识获取对应的控件元素对Flutter动态页面进行局部刷新操作,以实现对待更新视图控件进行更本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于Flutter动态页面的局部刷新方法,其特征在于,包括:根据在可视化配置器中设置的包括多个视图控件的Flutter动态页面形成所述Flutter动态页面的第一布局描述语句;根据Flutter渲染组件对所述第一布局描述语句进行渲染操作,获取各视图控件的控件标识、第一控件组件和控件元素,并建立包括各视图控件的控件标识和控件元素的第一数据结构;响应于用户对所述Flutter动态页面的操作获取更新数据并形成更新描述语句,根据所述更新描述语句建立各待更新视图控件的第二控件组件,并结合所述第一数据结构对所述Flutter动态页面进行局部刷新。2.根据权利要求1所述的局部刷新方法,其特征在于,所述渲染操作包括第一渲染操作和第二渲染操作,所述根据Flutter渲染组件对所述第一布局描述语句进行渲染操作,获取各视图控件的控件标识、第一控件组件和控件元素,并建立包括各视图控件的控件标识和控件元素的第一数据结构进一步包括:根据所述Flutter渲染组件对所述第一布局描述语句进行第一渲染操作生成第一页面视图、并建立第二数据结构,所述第二数据结构包括从所述第一布局描述语句中获取的各视图控件的控件标识和对应的第一控件组件;根据所述Flutter渲染组件对所述第一页面视图进行第二渲染操作生成第二页面视图,获取各视图控件的控件元素和对应的第三控件组件;根据所述第二数据结构、控件元素和对应的第三控件组件建立包括所述第一数据结构。3.根据权利要求2所述的局部刷新方法,其特征在于,所述根据所述Flutter渲染组件对所述第一布局描述语句进行第一渲染操作生成第一页面视图、并建立第二数据结构进一步包括:建立具有key

value结构的所述第二数据结构;遍历所述第一布局描述语句获取所有具有控件标识的第一控件组件,并将所述控件标识作为key、将对应的第一控件组件作为value存储在所述第二数据结构。4.根据权利要求3所述的局部刷新方法,其特征在于,所述根据所述Flutter渲染组件对所述第一页面视图进行第二渲染操作生成第二页面视图,获取各视图控件的控件元素和对应的第三控件组件进一步包括:响应于监听的所述Flutter动态页面的第二渲染操作的完成,通过递归调用的方式遍历所述第二页面视图获取所述Flutter动态页面的所有控件元素和对应的第三控件组件。5.根据权利要求4所述的局部刷新方法,其特征在于,所述根据所述第二数据结构、控件元素和对应的第三控件组件建立包括所述第一数据结构进一步包括:建立具有key

value结构的所述第一数据结构;判断所述第三控件组件是否存在于所述第二数据结构中,若存在则将所述第三控件组件对应的控件标识作为k...

【专利技术属性】
技术研发人员:杨明明孙勇
申请(专利权)人:京东方科技集团股份有限公司
类型:发明
国别省市:

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

1