CN115794267A - 一种显示用户界面的方法及终端设备 - Google Patents
一种显示用户界面的方法及终端设备 Download PDFInfo
- Publication number
- CN115794267A CN115794267A CN202111064190.XA CN202111064190A CN115794267A CN 115794267 A CN115794267 A CN 115794267A CN 202111064190 A CN202111064190 A CN 202111064190A CN 115794267 A CN115794267 A CN 115794267A
- Authority
- CN
- China
- Prior art keywords
- data
- user interface
- displayed
- target list
- original data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/451—Execution arrangements for user interfaces
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- User Interface Of Digital Computer (AREA)
Abstract
本公开实施例提供了一种显示用户界面的方法及终端设备,涉及显示技术领域。该方法包括:获取待显示用户界面中的目标列表的各个表项的原始数据;确定目标数量,所述目标数量为通过终端设备显示所述待显示用户界面时,在初始状态下所述终端设备显示出的所述目标列表的表项的数量;按照所述目标列表的表项的排列顺序,顺序解析所述目标数量个所述目标列表的表项的原始数据,获取第一解析结果;基于所述第一解析结果生成并显示初始用户界面。本公开实施例用于缩短输出用户界面的延迟。
Description
技术领域
本公开涉及显示技术领域,尤其涉及一种显示用户界面的方法及终端设备。
背景技术
目前,终端设备上常常需要输出包含列表的用户界面(User Interface,UI)。例如:在一些应用程序的用户界面中常常需要将诸如视频等多媒体资源以列表的形式展示出来,以供用户选择想要播放的多媒体信息。
列表的表项的原始数据一般为从服务器下载的Json格式的数据,终端设备得到列表的表项的原始数据后,需要在终端设备本地将表项的原始数据全部解析为相应的数据对象,并在解析完所有表项的原始数据后,根据解析表项的原始数据得到的数据对象渲染用户界面并显示。如上所述,现有技术中只有将列表的所有表项的原始数据全部解析完后,才能输出包含列表的用户界面,因此输出用户界面的延迟会随着用户界面中的列表的表项的增多而增加,当用户界面中的列表的表项较多时,输出用户界面的延迟会较长,影响用户的使用体验。
发明内容
有鉴于此,本公开提供了一种显示用户界面的方法及终端设备,用于解决当用户界面中的列表的表项较多时,输出用户界面的延迟会较长的问题。
为了实现上述目的,本公开实施例提供技术方案如下:
第一方面,本公开的实施例提供了一种显示用户界面的方法,应用于终端设备,所述方法包括:
获取待显示用户界面中的目标列表的各个表项的原始数据;
确定目标数量,所述目标数量为通过所述终端设备显示所述待显示用户界面时,在初始状态下所述终端设备显示出的所述目标列表的表项的数量;
按照所述目标列表的表项的排列顺序,顺序解析所述目标数量个所述目标列表的表项的原始数据,获取第一解析结果;
基于所述第一解析结果生成并显示初始用户界面。
作为本公开实施例一种可选的实施方式,在基于所述第一解析结果生成并显示初始用户界面之后,所述方法还包括:
解析剩余原始数据,获取第二解析结果;所述剩余原始数据包括通过终端设备显示所述待显示用户界面时,在初始状态下所述终端设备未显示出的所述目标列表的表项的原始数据;
基于所述第一解析结果和所述第二解析结果生成并显示所述待显示用户界面。
作为本公开实施例一种可选的实施方式,所述确定目标数量,包括:
获取所述目标列表的视图控件的位置信息、所述目标列表的表项尺寸以及所述终端设备的屏幕属性;
根据所述目标列表的视图控件的位置信息、所述目标列表的表项尺寸以及所述终端设备的屏幕属性,确定所述目标数量。
作为本公开实施例一种可选的实施方式,所述按照所述目标列表的表项的排列顺序,顺序解析所述目标数量个所述目标列表的表项的原始数据,包括:
使所述目标列表的各个表项的原始数据实现第一数据接口,并将第一类型适配器注册到Gson对象中;
其中,所述第一类型适配器用于在传入的待解析数据为实现了所述第一数据接口的数据时,读取所述目标数量条所述待解析数据进行解析,并跳过对后续的所述待解析数据进行解析。
作为本公开实施例一种可选的实施方式,所述方法还包括:
在所述第一解析结果中添加用于标识所述第一解析结果之后存在未解析的所述原始数据的标识。
作为本公开实施例一种可选的实施方式,所述解析剩余原始数据,包括:
使所述目标列表的各个表项的原始数据实现第二数据接口;
在确定所述第一解析结果之后存在未解析的所述原始数据,且传入的待解析数据为实现了所述第二数据接口的数据时,根据所述第一解析结果从所述待解析数据确定属于所述剩余原始数据的待解析数据,并基于预设解析方式对属于所述剩余原始数据的待解析数据进行解析,获取所述第二解析结果。
作为本公开实施例一种可选的实施方式,所述基于预设解析方式对属于所述剩余原始数据的待解析数据进行解析,获取所述第二解析结果,包括:
向Gson对象中内置的第二类型适配器注入异步解析任务;
通过所述第二类型适配器解析属于所述剩余原始数据的待解析数据;
调用所述异步解析任务获取所述第二解析结果。
作为本公开实施例一种可选的实施方式,所述基于所述第一解析结果和所述第二解析结果生成并显示所述待显示用户界面,包括:
对所述第一解析结果和所述第二解析结果进行拼接,获取拼接结果;
根据所述拼接结果生成所述待显示用户界面;
将所述初始用户界面更新显示为所述待显示用户界面。
第二方面,本公开的实施例提供了一种终端设备,包括:
获取单元,用于获取待显示用户界面中的目标列表的各个表项的原始数据;
处理单元,用于确定目标数量,所述目标数量为通过终端设备显示所述待显示用户界面时,在初始状态下所述终端设备显示出的所述目标列表的表项的数量;
解析单元,用于按照所述目标列表的表项的排列顺序,顺序解析所述目标数量个所述目标列表的表项的原始数据,获取第一解析结果;
显示单元,用于基于所述第一解析结果生成并显示初始用户界面。
作为本公开实施例一种可选的实施方式,
所述解析单元,还用于在基于所述第一解析结果生成并显示初始用户界面之后,解析剩余原始数据,获取第二解析结果;所述剩余原始数据包括通过终端设备显示所述待显示用户界面时,在初始状态下所述终端设备未显示出的所述目标列表的表项的原始数据;
所述显示单元,还用于基于所述第一解析结果和所述第二解析结果生成并显示所述待显示用户界面。
作为本公开实施例一种可选的实施方式,所述处理单元,具体用于获取所述目标列表的视图控件的位置信息、所述目标列表的表项尺寸以及所述终端设备的屏幕属性;根据所述目标列表的视图控件的位置信息、所述目标列表的表项尺寸以及所述终端设备的屏幕属性,确定所述目标数量。
作为本公开实施例一种可选的实施方式,所述解析单元,具体用于使所述目标列表的各个表项的原始数据实现第一数据接口,并将第一类型适配器注册到Gson对象中;
其中,所述第一类型适配器用于在传入的待解析数据为实现了所述第一数据接口的数据时,读取所述目标数量条所述待解析数据进行解析,并跳过对后续的所述待解析数据进行解析。
作为本公开实施例一种可选的实施方式,所述解析单元,还用于在所述第一解析结果中添加用于标识所述第一解析结果之后存在未解析的所述原始数据的标识。
作为本公开实施例一种可选的实施方式,所述解析单元,具体用于在使所述目标列表的各个表项的原始数据实现第二数据接口;在确定所述第一解析结果之后存在未解析的所述原始数据,且传入的待解析数据为实现了所述第二数据接口的数据时,根据所述第一解析结果从所述待解析数据确定属于所述剩余原始数据的待解析数据,并基于预设解析方式对属于所述剩余原始数据的待解析数据进行解析,获取所述第二解析结果。
作为本公开实施例一种可选的实施方式,所述解析单元,具体用于在向Gson对象中内置的第二类型适配器注入异步解析任务;通过所述第二类型适配器解析属于所述剩余原始数据的待解析数据;调用所述异步解析任务获取所述第二解析结果。
作为本公开实施例一种可选的实施方式,所述显示单元,具体用于对所述第一解析结果和所述第二解析结果进行拼接,获取拼接结果;根据所述拼接结果生成所述待显示用户界面;将所述初始用户界面更新显示为所述待显示用户界面。
第三方面,本公开实施例提供一种电子设备,包括:存储器和处理器,所述存储器用于存储计算机程序;所述处理器用于在执行计算机程序时,使得所述电子设备实现上述任一实施方式所述的显示用户界面的方法。
第四方面,本公开实施例提供一种计算机可读存储介质,当所述计算机程序被计算设备执行时,使得所述计算设备实现上述任一实施方式所述的显示用户界面的方法。
第五方面,本公开实施例提供一种计算机程序产品,当所述计算机程序产品在计算机上运行时,使得所述计算机实现上述任一实施方式所述的显示用户界面的方法。
本公开实施例提供的显示用户界面的方法在获取包括待显示用户界面中的目标列表的各个表项的原始数据后,先确定通过终端设备显示所述待显示用户界面时,在初始状态下所述终端设备显示出的所述目标列表的表项的数量,然后仅解析目标数量条原始数据并获取第一解析结果,再基于所述第一解析结果生成并显示初始用户界面。由于本公开实施例在解析完初始状态下所述终端设备显示出的表项的原始数据后,即可生成并显示初始用户界面,因此相比于解析完所有表项的原始数据后再显示用户界面,本公开实施例可以在列表的表项较多时,缩短向用户展示用户界面的延迟,提升用户体验。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。
为了更清楚地说明本公开实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本公开实施例提供的显示用户界面的方法的步骤流程图之一;
图2为本公开实施例提供的初始状态示意图;
图3为本公开实施例提供的显示用户界面的方法的步骤流程图之二;
图4为本公开实施例提供的显示用户界面的方法的步骤流程图之三;
图5为本公开实施例提供的显示用户界面的方法的步骤流程图之五;
图6为本公开实施例提供的终端设备的结构示意示意图;
图7为本公开实施例提供的电子设备的硬件结构示意图。
具体实施方式
为了能够更清楚地理解本公开的上述目的、特征和优点,下面将对本公开的方案进行进一步描述。需要说明的是,在不冲突的情况下,本公开的实施例及实施例中的特征可以相互组合。
在下面的描述中阐述了很多具体细节以便于充分理解本公开,但本公开还可以采用其他不同于在此描述的方式来实施;显然,说明书中的实施例只是本公开的一部分实施例,而不是全部的实施例。
在本公开实施例中,“示例性的”或者“例如”等词用于表示作例子、例证或说明。本公开实施例中被描述为“示例性的”或者“例如”的任何实施例或设计方案不应被解释为比其它实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念。此外,在本公开实施例的描述中,除非另有说明,“多个”的含义是指两个或两个以上。
本公开实施例提供了一种应用于终端设备的显示用户界面的方法,参照图1所示,该方法包括如下步骤:
S11、获取待显示用户界面中的目标列表的各个表项的原始数据。
示例性的,获取所述目标列表的各个表项的原始数据的方式可以包括:向服务器发送用于请求所述待显示用户界面的显示数据的请求信息,并接收服务器发送的所述待显示用户界面的显示数据,从待显示用户界面的显示数据中提取目标列表的各个表项的原始数据。
需要说明的是,本公开实施例中目标列表的表项与原始数据是一一对应的,目标列表的每一个表项唯一对应一条原始数据,每一条原始数据也唯一对应目标列表的一个表项。
示例性的,目标列表的表项的原始数据可以包括Json(JavaScript ObjectNotation)格式的数据。本公开不对此进行限制。
S12、确定目标数量。
其中,所述目标数量为通过终端设备显示所述待显示用户界面时,在初始状态下所述终端设备显示出的所述目标列表的表项的数量。
具体的,本公开实施例中的初始状态可以指:通过终端设备显示出待显示用户界面时,用户对终端设备的屏幕中的显示内容进行切换前的状态。
示例性的,参照图2所示,待显示用户界面中的目标列表21的表项包括:表项1、表项2、表项3、表项4以及表项5,通过终端设备显示所述待显示用户界面时,在初始状态下所述终端设备显示出的所述目标列表21的表项包括三个,分别为:表项1、表项2以及表项3;所述终端设备未显示出的所述目标列表21的表项包括两个,分别为:表项4和表项5,因此可以确定出目标数量为3。
需要说明的是,终端设备初始状态下显示出的表项数量必然小于或等于目标列表的表项的总数,且当目标数量等于目标列表的表项的总数时,初始状态下终端设备即可将目标列表的所有表项显示出来,目标列表的表项较少,解析完目标列表的所有表项的原始数据也不会耗费较长时间,因此这种情况下可以直接对原始数据集合中的全部原始数据进行解析,并根据解析结果显示用户界面即可。
S13、按照所述目标列表的表项的排列顺序,顺序解析所述目标数量个所述目标列表的表项的原始数据,获取第一解析结果。
即,解析目标列表的表项中的前目标数量个表项的原始数据获取第一解析结果。
承图2所示实例,目标数量为3,原始数据集合中的原始数据的总数为5,因此对表项1、表项2、表项3的原始数据进行解析,获取所述第一解析结果。
S14、基于所述第一解析结果生成并显示初始用户界面。
即,将第一解析结果发至用户界面层,以便于用户界面根据所述第一解析结果渲染所述初始用户界面,并输出所述初始用户界面。
可选的,将第一解析结果发至用户界面层的实现方式可以包括:
使用RxJava库中的可视化对象(Observable)将所述第一解析结果发至用户界面层。
需要说明的是,本公开实施例中还可以通过其它方式将第一解析结果发至用户界面层,例如:通过Kotlin Flow、Jetpack LiveData等方式将第一解析结果发至用户界面层,本公开实施例对此不做限定,以能够将第一解析结果发送至用户界面层为准。
本公开实施例提供的显示用户界面的方法在获取包括待显示用户界面中的目标列表的各个表项的原始数据后,先确定通过终端设备显示所述待显示用户界面时,在初始状态下所述终端设备显示出的所述目标列表的表项的数量,然后仅解析目标数量条原始数据并获取第一解析结果,再基于所述第一解析结果生成并显示初始用户界面。由于本公开实施例在解析完初始状态下所述终端设备显示出的表项的原始数据后,即可生成并显示初始用户界面,因此相比于解析完所有表项的原始数据后再显示用户界面,本公开实施例可以在列表的表项较多时,缩短向用户展示用户界面的延迟,提升用户体验。
本公开实施例提供了另一种显示用户界面的方法,参照图3所示,该显示用户界面的方法包括如下步骤:
S31、获取待显示用户界面中的目标列表的各个表项的原始数据。
同样,可以通过向服务器发送请求信息以获取所述目标列表的各个表项的原始数据。
S32、获取所述目标列表的视图控件的位置信息、所述目标列表的表项尺寸以及所述终端设备的屏幕属性(Display Metrics)。
本公开实施例中的目标列表的视图控件的位置信息具体是指用于显示目标列表的视图控件(view)在待显示用户界面中的位置。
本公开实施例中屏幕属性具体可以包括终端设备的屏幕分辨率、屏幕尺寸等信息。
需要说明的是,目标列表的各个表项的尺寸可以全部相同,也可以为各不相同。在目标列表的各个表项的尺寸全部相同的情况下,获取目标列表的表项尺寸时,只需要获取其中一个表项的尺寸即可,在目标列表的各个表项的尺寸各不相同的情况下,获取目标列表的表项尺寸时,获取每一个表项的尺寸。
S33、根据所述目标列表的视图控件的位置信息、所述目标列表的表项尺寸以及所述终端设备的屏幕属性,确定所述目标数量。
在一些实施例中,根据所述目标列表的视图控件的位置信息、所述目标列表的表项尺寸以及所述终端设备的屏幕属性,确定所述目标数量的实现方式可以包括如下步骤a和步骤b:
步骤a、根据所述目标列表的视图控件的位置信息和所述终端设备的屏幕属性,确定通过终端设备显示所述待显示用户界面时,在初始状态下所述终端设备显示出的所述目标列表的视图控件尺寸。
步骤b、根据初始状态下所述终端设备显示出的所述目标列表的视图控件尺寸和所述目标列表的表项尺寸,计算所述目标数量。
例如:初始状态下所述终端设备显示出的所述目标列表的视图控件尺寸为15缇(twips),所述目标列表的各个表项的尺寸相同且均为5缇,则可以确定在初始状态下所述终端设备显示出的所述目标列表的表项包括3个,因此可以确定目标数量为3。
再例如:初始状态下所述终端设备显示出的所述目标列表的视图控件尺寸为20缇,所述目标列表的第一个表项的尺寸为5缇,所述目标列表的第二个表项的尺寸为6缇、所述目标列表的第三个表项的尺寸为5缇、所述目标列表的第四个表项以及第四个表项之后的表项的尺寸均为7缇,则可以确定在初始状态下所述终端设备显示出的所述目标列表的表项包括:第一个表项、第二个表项、第三个表项以及第四个表项,因此确定目标数量为4。
S34、按照所述目标列表的表项的排列顺序,顺序解析所述目标数量个所述目标列表的表项的原始数据,获取第一解析结果。
作为本公开实施例一种可选的实施方式,上述步骤S34(按照所述目标列表的表项的排列顺序,顺序解析所述目标数量个所述目标列表的表项的原始数据)的实现方式可以包括:
使所述目标列表的各个表项的原始数据实现第一数据接口,并将第一类型适配器注册到Gson对象中。其中,所述第一类型适配器用于在传入的待解析数据为实现了所述第一数据接口的数据时,读取所述目标数量条所述待解析数据进行解析,并跳过对后续的所述待解析数据进行解析。
上述实施例的原理包括:使所述目标列表的各个表项的原始数据实现第一数据接口后,目标列表的各个表项的原始数据为实现第一数据接口的待解析数据,而第一类型适配器被配置使用自定义方法(读取所述目标数量条所述待解析数据进行解析,并跳过对后续的所述待解析数据进行解析)对实现了第一数据接口的待解析数据进行解析,因此当有待解析数据传入时(可能是实现了第一数据接口的目标列表的各个表项的原始数据,也可能是其它待解析数据),解析器会先判断传入的待解析数据是否实现了第一数据接口;若实现了第一数据接口,则通过第一类型适配器使用自定义方法(读取所述目标数量条所述待解析数据进行解析,并跳过对后续的所述待解析数据进行解析)对传入的待解析数据进行解析,从而实现按照所述目标列表的表项的排列顺序,顺序解析所述目标数量个所述目标列表的表项的原始数据,且不影响除所述目标列表的表项的原始数据以外的其它待解析数据的正常解析。
示例性的,可以通过Gson提供的registerTypeAdapter()方法,将第一类型适配器注册到Gson对象中。
具体的,可以预先定义第一数据接口以及用于对实现了所述第一数据接口的待解析数据进行解析的第一类型适配器(Type Adapter),预先将第一类型适配器注入注册到Gson对象中。当开始对待解析数据进行解析时,先判断待解析数据是否实现了所述第一数据接口,若待解析数据实现了所述第一数据接口,则读取所述目标数量条所述待解析数据进行解析,并跳过对后续的所述待解析数据进行解析;而若待解析数据未实现所述第一数据接口,则根据待解析数据所属数据类型的调用相应的类型适配器对待解析数据进行完全解析。
示例性的,参照图4所示,当原始数据为Json格式的数据、并且定义有第一数据接口时,终端设备内部实现按照所述目标列表的表项的排列顺序,顺序解析所述目标数量个所述目标列表的表项的原始数据的过程包括在将第一类型适配器注册到Gson对象且使所述目标列表的各个表项的原始数据实现第一数据接口后执行如下步骤:
S41、通过调用Gson.fromJson()函数发起对Json格式的待解析数据的解析。
S42、通过getTypeToken()函数获取传入的待解析数据的数据类型。
S43、根据待解析数据的数据类型判断待解析数据是否实现了所述第一数据接口。
在上述步骤S43中,若待解析数据实现了所述第一数据接口,则执行如下步骤S44;而若待解析数据未实现所述第一数据接口,则执行如下步骤S45。
S44、顺序读取目标数量条待解析数据进行解析,获取所述第一解析结果,并跳过对后续的所述待解析数据进行解析。
S45、通过待解析数据的数据类型对应的类型适配器进行解析。
作为本公开实施例一种可选的实施方式,本公开实施例提供的显示用户界面的方法还包括:
在所述第一解析结果中添加用于标识所述第一解析结果之后存在未解析的所述原始数据的标识。
示例性的,可以将第一解析结果中的最后一个解析对象的用于表征最后一个解析对象之后是否存在未解析的原始数据的字段的值设置为“是”,以标识所述第一解析结果之后存在未解析的所述原始数据。
在上述步骤S34(按照所述目标列表的表项的排列顺序,顺序解析所述目标数量个所述目标列表的表项的原始数据,获取第一解析结果)之后,本公开实施例提供的显示用户界面的方法继续执行如下步骤S35。
S35、解析剩余原始数据,获取第二解析结果。
所述剩余原始数据包括通过终端设备显示所述待显示用户界面时,在初始状态下所述终端设备未显示出的所述目标列表的表项的原始数据。
参照图2所示,在图2所示场景中,剩余原始数据包括:表项4原始数据和表项5的原始数据。
示例性的,目标列表包括10个表项,每一个表项对应一条原始数据,在按照所述目标列表的表项的排列顺序,顺序解析所述目标数量个所述目标列表的表项的原始数据时,解析了表项1至表项3的原始数据,则剩余原始数据为表项4至表项10的原始数据。
作为本公开实施例一种可选的实施方式,所述解析剩余原始数据,包括:
使所述目标列表的各个表项的原始数据实现第二数据接口;
在确定所述第一解析结果之后存在未解析的所述原始数据,且传入的待解析数据为实现了所述第二数据接口的数据时,根据所述第一解析结果从所述待解析数据确定属于所述剩余原始数据的待解析数据,并基于预设解析方式对属于所述剩余原始数据的待解析数据进行解析,获取所述第二解析结果。
进一步的,所述基于预设解析方式对属于所述剩余原始数据的待解析数据进行解析,获取所述第二解析结果,包括:
向Gson对象中内置的第二类型适配器注入异步解析任务;
通过所述第二类型适配器解析属于所述剩余原始数据的待解析数据;
调用所述异步解析任务获取所述第二解析结果。
具体的,可以预先设定第二数据接口,若第二数据接口被实现,则表明第二数据接口的数据类型存在需要解析的原始数据。在获取目标列表的各个表项的原始数据后,将目标列表的各个表项的原始数据写入第二数据接口的对象中,以使所述目标列表的各个表项的原始数据实现第二数据接口。
示例性的,参照图5所示,当原始数据为Json格式的数据、定义有第二数据接口时,且第一解析结果以RxJava中的可视化对象发送到用户界面层进行展示时,终端设备内部实现解析剩余原始数据的过程包括:
S51、创建用于解析剩余原始数据的Gson实例。
具体的,可以在待显示用户界面所属应用程序中定义一个创建任务,在待显示用户界面所属应用程序启动时,创建用于解析剩余原始数据的Gson实例。
S52、判断所述第一解析结果之后是否存在未解析的所述原始数据。
S53、是否实现了所述第二数据接口。
若确定所述第一解析结果之后存在未解析的所述原始数据且实现了所述第二数据接口,则执行如下步骤S54,而若确定所述第一解析结果之后不存在未解析的所述原始数据和/或未实现第二数据接口,则结束本公开实施例的方法流程。
S54、通过第一函数拦截实现了第二数据接口的待解析数据,使用自定义解析方法对实现了第二数据接口的待解析数据进行解析。
其中,自定义解析方法包括:获取传入的待解析数据,向传入的数据对象中注入一个异步解析任务Callable,使用内置的Gson对象对传入的待解析数据进行完整的反序列化并返回完整的列表。在自定义解析方法返回后,获取处理后的数据对象中的异步解析任务Callable,并使用Observable.fromCallable()方法异步调用,生成一个新的可视化对象。
S36、基于所述第一解析结果和所述第二解析结果生成并显示所述待显示用户界面。
作为本公开实施例一种可选的实施方式,上述步骤S36(基于所述第一解析结果和所述第二解析结果生成并显示所述待显示用户界面)的实现方式可以包括如下步骤a之步骤c:
步骤a、对所述第一解析结果和所述第二解析结果进行拼接,获取拼接结果。
即,将步骤S34中得到的可视化对象和步骤S35中得到的可视化对象合并为一个可视化对象。
步骤b、根据所述拼接结果生成所述待显示用户界面。
本公开实施例中不限定将拼接结果发至用户界面层的实现方式进行限定,将拼接结果发至用户界面层的实现方式可以与将第一解析结果发送至用户界面层的实现方式相同。
步骤c、将所述初始用户界面更新显示为所述待显示用户界面。
上述实施例在生成并显示初始用户界面后进一步解析剩余原始数据获取第二解析结果,并基于所述第一解析结果和所述第二解析结果生成并显示所述待显示用户界面,因此上述实施例可以进一步保证待显示用户界面的正常显示,避免用户向下浏览所述目标列表时无法正常浏览的问题。
基于同一发明构思,作为对上述方法的实现,本公开实施例还提供了一种终端设备,该终端设备实施例与前述方法实施例对应,为便于阅读,本实施例不再对前述方法实施例中的细节内容进行逐一赘述,但应当明确,本实施例中的终端设备能够对应实现前述方法实施例中的全部内容。
本公开实施例提供了一种终端设备,图6为该终端设备的结构示意图,如图6所示,该终端设备600包括:
获取单元61,用于获取待显示用户界面中的目标列表的各个表项的原始数据;
处理单元62,用于确定目标数量,所述目标数量为通过终端设备显示所述待显示用户界面时,在初始状态下所述终端设备显示出的所述目标列表的表项的数量;
解析单元63,用于按照所述目标列表的表项的排列顺序,顺序解析所述目标数量个所述目标列表的表项的原始数据,获取第一解析结果;以及
显示单元64,用于基于所述第一解析结果生成并显示初始用户界面。
作为本公开实施例一种可选的实施方式,所述解析单元63,还用于在基于所述第一解析结果生成并显示初始用户界面之后,解析剩余原始数据,获取第二解析结果;所述剩余原始数据包括通过终端设备显示所述待显示用户界面时,在初始状态下所述终端设备未显示出的所述目标列表的表项的原始数据;所述显示单元64,还用于基于所述第一解析结果和所述第二解析结果生成并显示所述待显示用户界面。
作为本公开实施例一种可选的实施方式,所述处理单元62,可以用于获取所述目标列表的视图控件的位置信息、所述目标列表的表项尺寸以及所述终端设备的屏幕属性;根据所述目标列表的视图控件的位置信息、所述目标列表的表项尺寸以及所述终端设备的屏幕属性,确定所述目标数量。
作为本公开实施例一种可选的实施方式,所述解析单元63,可以用于使所述目标列表的各个表项的原始数据实现第一数据接口,并将第一类型适配器注册到Gson对象中;其中,所述第一类型适配器用于在传入的待解析数据为实现了所述第一数据接口的数据时,读取所述目标数量条所述待解析数据进行解析,并跳过对后续的所述待解析数据进行解析。
作为本公开实施例一种可选的实施方式,所述解析单元63,还可以用于在所述第一解析结果中添加用于标识所述第一解析结果之后存在未解析的所述原始数据的标识。
作为本公开实施例一种可选的实施方式,所述解析单元63,可以用于在使所述目标列表的各个表项的原始数据实现第二数据接口;在确定所述第一解析结果之后存在未解析的所述原始数据,且传入的待解析数据为实现了所述第二数据接口的数据时,根据所述第一解析结果从所述待解析数据确定属于所述剩余原始数据的待解析数据,并基于预设解析方式对属于所述剩余原始数据的待解析数据进行解析,获取所述第二解析结果。
作为本公开实施例一种可选的实施方式,所述解析单元63,可以用于在向Gson对象中内置的第二类型适配器注入异步解析任务;通过所述第二类型适配器解析属于所述剩余原始数据的待解析数据;调用所述异步解析任务获取所述第二解析结果。
作为本公开实施例一种可选的实施方式,所述显示单元64,可以用于对所述第一解析结果和所述第二解析结果进行拼接,获取拼接结果;根据所述拼接结果生成所述待显示用户界面;将所述初始用户界面更新显示为所述待显示用户界面。
本实施例提供的终端设备可以执行上述方法实施例提供的显示用户界面的方法,其实现原理与技术效果类似,此处不再赘述。
基于同一发明构思,本公开实施例还提供了一种电子设备。图7为本公开实施例提供的电子设备的结构示意图,如图7所示,本实施例提供的电子设备包括:存储器701和处理器702,所述存储器701用于存储计算机程序;所述处理器702用于在执行计算机程序时执行上述实施例提供的显示用户界面的方法。
基于同一发明构思,本公开实施例还提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,当计算机程序被处理器执行时,使得所述计算设备实现上述实施例提供的显示用户界面的方法。
基于同一发明构思,本公开实施例还提供了一种计算机程序产品,当所述计算机程序产品在计算机上运行时,使得所述计算设备实现上述实施例提供的显示用户界面的方法。
本领域技术人员应明白,本公开的实施例可提供为方法、系统、或计算机程序产品。因此,本公开可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本公开可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质上实施的计算机程序产品的形式。
处理器可以是中央处理单元(CentralProcessingUnit,CPU),还可以是其他通用处理器、数字信号处理器(DigitalSignalProcessor,DSP)、专用集成电路(ApplicationSpecificIntegratedCircuit,ASIC)、现成可编程门阵列(Field-ProgrammableGateArray,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flashRAM)。存储器是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动存储介质。存储介质可以由任何方法或技术来实现信息存储,信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。根据本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitorymedia),如调制的数据信号和载波。
最后应说明的是:以上各实施例仅用以说明本公开的技术方案,而非对其限制;尽管参照前述各实施例对本公开进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本公开各实施例技术方案的范围。
Claims (12)
1.一种显示用户界面的方法,其特征在于,应用于终端设备,所述方法包括:
获取待显示用户界面中的目标列表的各个表项的原始数据;
确定目标数量,所述目标数量为通过所述终端设备显示所述待显示用户界面时,在初始状态下所述终端设备显示出的所述目标列表的表项的数量;
按照所述目标列表的表项的排列顺序,顺序解析所述目标数量个所述目标列表的表项的原始数据,获取第一解析结果;
基于所述第一解析结果生成并显示初始用户界面。
2.根据权利要求1所述的方法,其特征在于,在基于所述第一解析结果生成并显示初始用户界面之后,所述方法还包括:
解析剩余原始数据,获取第二解析结果;所述剩余原始数据包括通过终端设备显示所述待显示用户界面时,在初始状态下所述终端设备未显示出的所述目标列表的表项的原始数据;
基于所述第一解析结果和所述第二解析结果生成并显示所述待显示用户界面。
3.根据权利要求1所述的方法,其特征在于,所述确定目标数量,包括:
获取所述目标列表的视图控件的位置信息、所述目标列表的表项尺寸以及所述终端设备的屏幕属性;
根据所述目标列表的视图控件的位置信息、所述目标列表的表项尺寸以及所述终端设备的屏幕属性,确定所述目标数量。
4.根据权利要求1所述的方法,其特征在于,所述按照所述目标列表的表项的排列顺序,顺序解析所述目标数量个所述目标列表的表项的原始数据,包括:
使所述目标列表的各个表项的原始数据实现第一数据接口,并将第一类型适配器注册到Gson对象中;
其中,所述第一类型适配器用于在传入的待解析数据为实现了所述第一数据接口的数据时,读取所述目标数量条所述待解析数据进行解析,并跳过对后续的所述待解析数据进行解析。
5.根据权利要求1所述的方法,其特征在于,所述方法还包括:
在所述第一解析结果中添加用于标识所述第一解析结果之后存在未解析的所述原始数据的标识。
6.根据权利要求2所述的方法,其特征在于,所述解析剩余原始数据,包括:
使所述目标列表的各个表项的原始数据实现第二数据接口;
在确定所述第一解析结果之后存在未解析的所述原始数据,且传入的待解析数据为实现了所述第二数据接口的数据时,根据所述第一解析结果从所述待解析数据确定属于所述剩余原始数据的待解析数据,并基于预设解析方式对属于所述剩余原始数据的待解析数据进行解析,获取所述第二解析结果。
7.根据权利要求6所述的方法,其特征在于,所述基于预设解析方式对属于所述剩余原始数据的待解析数据进行解析,获取所述第二解析结果,包括:
向Gson对象中内置的第二类型适配器注入异步解析任务;
通过所述第二类型适配器解析属于所述剩余原始数据的待解析数据;
调用所述异步解析任务获取所述第二解析结果。
8.根据权利要求2所述的方法,其特征在于,所述基于所述第一解析结果和所述第二解析结果生成并显示所述待显示用户界面,包括:
对所述第一解析结果和所述第二解析结果进行拼接,获取拼接结果;
根据所述拼接结果生成所述待显示用户界面;
将所述初始用户界面更新显示为所述待显示用户界面。
9.一种终端设备,其特征在于,包括:
获取单元,用于获取待显示用户界面中的目标列表的各个表项的原始数据;
处理单元,用于确定目标数量,所述目标数量为通过终端设备显示所述待显示用户界面时,在初始状态下所述终端设备显示出的所述目标列表的表项的数量;
解析单元,用于按照所述目标列表的表项的排列顺序,顺序解析所述目标数量个所述目标列表的表项的原始数据,获取第一解析结果;
显示单元,用于基于所述第一解析结果生成并显示初始用户界面。
10.一种电子设备,其特征在于,包括:存储器和处理器,所述存储器用于存储计算机程序;所述处理器用于在执行计算机程序时,使得所述电子设备实现权利要求1-8任一项所述的显示用户界面的方法。
11.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,当所述计算机程序被计算设备执行时,使得所述计算设备实现权利要求1-8任一项所述的显示用户界面的方法。
12.一种计算机程序产品,其特征在于,当所述计算机程序产品在计算机上运行时,使得所述计算机实现如权利要求1-8任一项所述的显示用户界面的方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111064190.XA CN115794267A (zh) | 2021-09-10 | 2021-09-10 | 一种显示用户界面的方法及终端设备 |
PCT/CN2022/114450 WO2023035942A1 (zh) | 2021-09-10 | 2022-08-24 | 一种显示用户界面的方法及终端设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111064190.XA CN115794267A (zh) | 2021-09-10 | 2021-09-10 | 一种显示用户界面的方法及终端设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115794267A true CN115794267A (zh) | 2023-03-14 |
Family
ID=85417208
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111064190.XA Pending CN115794267A (zh) | 2021-09-10 | 2021-09-10 | 一种显示用户界面的方法及终端设备 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN115794267A (zh) |
WO (1) | WO2023035942A1 (zh) |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104133884B (zh) * | 2014-07-28 | 2017-12-26 | 百度在线网络技术(北京)有限公司 | 显示网页的方法及装置 |
CN106575303B (zh) * | 2015-04-20 | 2021-09-24 | 阿里巴巴(中国)有限公司 | 显示网页的方法和设备 |
CN108733738B (zh) * | 2017-04-25 | 2023-04-07 | 腾讯科技(深圳)有限公司 | 一种页面加载方法、系统、服务器及终端 |
CN108804707B (zh) * | 2018-06-21 | 2024-01-09 | 深圳市雅阅科技有限公司 | 一种页面处理方法、装置以及相关设备 |
-
2021
- 2021-09-10 CN CN202111064190.XA patent/CN115794267A/zh active Pending
-
2022
- 2022-08-24 WO PCT/CN2022/114450 patent/WO2023035942A1/zh unknown
Also Published As
Publication number | Publication date |
---|---|
WO2023035942A1 (zh) | 2023-03-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106888236B (zh) | 会话管理方法及会话管理装置 | |
WO2017206626A1 (zh) | 网络资源访问设备、混合设备及方法 | |
CN104850388A (zh) | 网页绘制方法及装置 | |
CN109815448B (zh) | 幻灯片生成方法及装置 | |
CN110968314B (zh) | 一种页面生成方法及装置 | |
CN112395027A (zh) | 微件界面生成方法、装置、存储介质与电子设备 | |
US8706803B1 (en) | Client-side generation of preliminary version of network page | |
CN111767109A (zh) | 基于终端应用的h5页面显示方法、设备及可读存储介质 | |
CN111708824A (zh) | 数据处理方法、装置、设备及存储介质 | |
CN107332805B (zh) | 检测漏洞的方法、装置和系统 | |
CN112035555B (zh) | 一种信息展示方法、装置及设备 | |
CN115794267A (zh) | 一种显示用户界面的方法及终端设备 | |
US11750876B2 (en) | Method and apparatus for determining object adding mode, electronic device and medium | |
CN116756016A (zh) | 多浏览器测试方法、装置、设备、介质及程序产品 | |
US20230334071A1 (en) | Generating synthesized user data | |
CN115809056A (zh) | 组件复用实现方法、装置和终端设备、可读存储介质 | |
US20140304690A1 (en) | Systems and Methods for Outputting an Application to Another Environment | |
US9811448B2 (en) | Event-driven software testing | |
CN113608737A (zh) | 页面生成方法、装置、设备及介质 | |
CN107656947B (zh) | 一种多媒体信息播放方法及装置 | |
CN113656139B (zh) | 一种界面的规则添加方法及设备 | |
CN113342416B (zh) | 一种在小程序中展示h5图文数据的方法及设备 | |
CN111104626B (zh) | 信息存储方法和装置 | |
KR102229032B1 (ko) | 방송 적합 여부에 대한 알림을 제공하는 장치 및 방법 | |
CN108093004B (zh) | 报表中图形的推送方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |