一种列表显示方法、装置、设备及存储介质制造方法及图纸

技术编号:20865086 阅读:35 留言:0更新日期:2019-04-17 09:05
本公开实施例提供了一种列表显示方法、装置、设备及存储介质,该方法包括:根据待显示的列表实例中的数据源信息,获取列表实例的待显示单元格对应的待显示数据和单元格类型;加载并解析预先生成的至少一个采用结构化语言的单元格描述文件,其中各单元格描述文件中存储有至少一种单元格类型对应的元数据,元数据包括子视图层级结构信息和属性设置信息;根据待显示单元格对应的单元格类型的元数据,创建单元格实例,并根据待显示数据对单元格实例进行渲染和显示。通过本公开实施例的技术方案,可以提高列表配置的灵活性,实现了列表显示的多样性。

【技术实现步骤摘要】
一种列表显示方法、装置、设备及存储介质
本公开实施例涉及应用程序开发
,尤其涉及一种列表显示方法、装置、设备及存储介质。
技术介绍
在开发基于iOS操作系统的移动应用程序时,开发者经常使用列表方式来展示应用内容。iOS系统为开发者提供了三种列表,分别为UITableView、UICollectionView和UIScrollView,其中,前两种列表是基于第三种列表实现的,UITableView是纵向可滑动列表,UICollectionView的滑动方向可在横向和纵向二者间进行选择,而UIScrollView在横向和纵向上均可滑动。在应用程序开发过程中,开发者往往选择UITableView和UICollectView,以使开发更加便捷。UITableView和UICollectView的创建开发阶段基本一致,可以概括如下:步骤1、使用原生语言定义各种类型的列表单元格(Cell)类型,复杂列表里的单元格(Cell)类型多至20多种;步骤2、对步骤1中各种单元格(Cell)类型的子视图进行布局;步骤3、为步骤1中各种单元格(Cell)类型添加数据处理逻辑;步骤4、为步骤1中各种单元格(Cell)类型添加事件处理逻辑;步骤5、创建列表实例,设置列表属性,如背景颜色、布局类型、滑动方向等;步骤6、向列表实例注册步骤1定义的所有单元格(Cell)类型;步骤7、实现列表实例的数据源代理和事件回调代理;步骤8、完成列表的创建。从列表的创建步骤可以看出:列表单元格(Cell)类型的定义须先行于列表的创建,也就是说列表单元格(Cell)类型和列表的创建强相关,在多业务团队协作开发环境下,列表的业务可能由多个业务团队共同完成,团队业务进度的不同将导致团队互相依赖,不利于业务协同推进,同时也不利于动态的插入新的单元格(Cell)样式,从而不能满足需要灵活配置的业务需求;另外,在一个业务稍微复杂些的列表中,往往需要定义多种列表单元格(Cell),并且列表单元格(Cell)的定义过程复杂,类型增多时也会增加重复操作,比如列表单元格(Cell)子视图的创建、子视图布局、数据处理和事件处理等,这大大降低了开发效率。在创建列表后,客户端按照固化在代码中单元格类型的定义数据生成单元格实例,并进行渲染显示,显示效果单一,缺乏灵活性。
技术实现思路
有鉴于此,本公开实施例提供了一种列表显示方法、装置、设备及存储介质,以提高列表配置的灵活性,实现列表显示的多样性。第一方面,本公开实施例提供了一种列表显示方法,包括:根据待显示的列表实例中的数据源信息,获取所述列表实例的待显示单元格对应的待显示数据和单元格类型;加载并解析预先生成的至少一个采用结构化语言的单元格描述文件,其中各所述单元格描述文件中存储有至少一种单元格类型对应的元数据,所述元数据包括子视图层级结构信息和属性设置信息;根据所述待显示单元格对应的单元格类型的元数据,创建单元格实例,并根据所述待显示数据对所述单元格实例进行渲染和显示。可选地,在根据所述待显示单元格对应的单元格类型的元数据,创建单元格实例之后,所述方法还包括:若所述单元格实例被释放,则回收该单元格实例,缓存该单元格实例以及该单元格实例对应的单元格类型,以使后续需要对相同类型的单元格进行显示时,读取缓存的单元格实例并对读取的单元格实例进行渲染和显示。可选地,根据所述待显示数据对所述单元格实例进行渲染和显示,包括:确定所述单元格实例中各子视图的布局参数,所述布局参数包括子视图的尺寸参数和子视图在单元格中的位置参数;根据所述布局参数和所述待显示数据对所述单元格实例进行渲染和显示,并缓存所述布局参数,以使后续使用缓存的所述布局参数对相同类型的单元格实例进行渲染。可选地,在创建单元格实例之后,所述方法还包括:为所述单元格实例的子视图添加触控行为处理函数;在根据所述待显示数据对所述单元格实例进行渲染和显示之后,所述方法还包括:通过所述触控行为处理函数检测针对显示的所述子视图的触控操作,并在检测到所述触控操作后,将所述触控操作的信息作为输入参数,调用预先针对所述列表实例设置的事件处理对象,以对所述触控操作进行处理。可选地,在根据待显示的列表实例中的数据源信息,获取所述列表实例的待显示单元格对应的待显示数据和单元格类型之前,所述方法还包括:根据输入的创建参数创建列表实例,所述创建参数包括:需创建的列表实例类型和事件处理对象,所述事件处理对象用于对针对所述列表实例中各单元格中各控件的触控操作进行处理;调用所述列表实例的数据源加载接口加载数据源信息。可选地,通过调用列表工厂Factory中的列表创建函数,根据输入的创建参数创建列表实例。可选地,所述结构化语言为JavaScript对象标记JASON语言或可扩展标记语言XML。可选地,通过单元格描述文件加载器Loader,加载并解析预先生成的至少一个采用结构化语言的单元格描述文件;通过单元格生成器Generator,根据所述待显示单元格对应的单元格类型的元数据,创建单元格实例。第二方面,本公开实施例还提供了一种列表显示装置,包括:待显示数据获取模块,用于根据待显示的列表实例中的数据源信息,获取所述列表实例的待显示单元格对应的待显示数据和单元格类型;单元格描述文件加载模块,用于加载并解析预先生成的至少一个采用结构化语言的单元格描述文件,其中各所述单元格描述文件中存储有至少一种单元格类型对应的元数据,所述元数据包括子视图层级结构信息和属性设置信息;单元格实例显示模块,用于根据所述待显示单元格对应的单元格类型的元数据,创建单元格实例,并根据所述待显示数据对所述单元格实例进行渲染和显示。可选地,该装置还包括:单元格实例缓存模块,用于在根据所述待显示单元格对应的单元格类型的元数据,创建单元格实例之后,若所述单元格实例被释放,则回收该单元格实例,缓存该单元格实例以及该单元格实例对应的单元格类型,以使后续需要对相同类型的单元格进行显示时,读取缓存的单元格实例并对读取的单元格实例进行渲染和显示。可选地,单元格描述文件加载模块,具体用于:确定所述单元格实例中各子视图的布局参数,所述布局参数包括子视图的尺寸参数和子视图在单元格中的位置参数;根据所述布局参数和所述待显示数据对所述单元格实例进行渲染和显示,并缓存所述布局参数,以使后续使用缓存的所述布局参数对相同类型的单元格实例进行渲染。可选地,该装置还包括:触控行为处理函数添加模块,用于在创建单元格实例之后,所述方法还包括:为所述单元格实例的子视图添加触控行为处理函数;相应地,该装置还包括:事件处理对象调用模块,用于在根据所述待显示数据对所述单元格实例进行渲染和显示之后,通过所述触控行为处理函数检测针对显示的所述子视图的触控操作,并在检测到所述触控操作后,将所述触控操作的信息作为输入参数,调用预先针对所述列表实例设置的事件处理对象,以对所述触控操作进行处理。可选地,该装置还包括:列表实例创建模块,用于在根据待显示的列表实例中的数据源信息,获取所述列表实例的待显示单元格对应的待显示数据和单元格类型之前,根据输入的创建参数创建列表实例,所述创建参数包括:需创建的列表实例类型和事件处理对象,所述事件处理对象用于对针对所述列表实例中各单元格中各控件的触控操作本文档来自技高网
...

【技术保护点】
1.一种列表显示方法,其特征在于,包括:根据待显示的列表实例中的数据源信息,获取所述列表实例的待显示单元格对应的待显示数据和单元格类型;加载并解析预先生成的至少一个采用结构化语言的单元格描述文件,其中各所述单元格描述文件中存储有至少一种单元格类型对应的元数据,所述元数据包括子视图层级结构信息和属性设置信息;根据所述待显示单元格对应的单元格类型的元数据,创建单元格实例,并根据所述待显示数据对所述单元格实例进行渲染和显示。

【技术特征摘要】
1.一种列表显示方法,其特征在于,包括:根据待显示的列表实例中的数据源信息,获取所述列表实例的待显示单元格对应的待显示数据和单元格类型;加载并解析预先生成的至少一个采用结构化语言的单元格描述文件,其中各所述单元格描述文件中存储有至少一种单元格类型对应的元数据,所述元数据包括子视图层级结构信息和属性设置信息;根据所述待显示单元格对应的单元格类型的元数据,创建单元格实例,并根据所述待显示数据对所述单元格实例进行渲染和显示。2.根据权利要求1所述的方法,其特征在于,在根据所述待显示单元格对应的单元格类型的元数据,创建单元格实例之后,所述方法还包括:若所述单元格实例被释放,则回收该单元格实例,缓存该单元格实例以及该单元格实例对应的单元格类型,以使后续需要对相同类型的单元格进行显示时,读取缓存的单元格实例并对读取的单元格实例进行渲染和显示。3.根据权利要求1所述的方法,其特征在于,根据所述待显示数据对所述单元格实例进行渲染和显示,包括:确定所述单元格实例中各子视图的布局参数,其中所述布局参数包括子视图的尺寸参数和子视图在单元格中的位置参数;根据所述布局参数和所述待显示数据对所述单元格实例进行渲染和显示,并缓存所述布局参数,以使后续使用缓存的所述布局参数对相同类型的单元格实例进行渲染。4.根据权利要求1所述的方法,其特征在于,在创建单元格实例之后,所述方法还包括:为所述单元格实例的子视图添加触控行为处理函数;在根据所述待显示数据对所述单元格实例进行渲染和显示之后,所述方法还包括:通过所述触控行为处理函数检测针对显示的所述子视图的触控操作,并在检测到所述触控操作后,将所述触控操作的信息作为输入参数,调用预先针对所述列表实例设置的事件处理对象,以对所述触控操作进行处理。5.根据权利要求1所述的方法,其特征在于,在根据待显示的列表实例中的数据源信息,获取所述列表实例的待显示单元格对应的待显...

【专利技术属性】
技术研发人员:温增葵
申请(专利权)人:北京字节跳动网络技术有限公司
类型:发明
国别省市:北京,11

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

1