列表显示方法及装置与流程

文档序号:18196721发布日期:2019-07-17 05:54阅读:177来源:国知局
列表显示方法及装置与流程

本发明涉及信息处理技术领域,特别涉及一种列表显示方法及装置。



背景技术:

通常,用户通过终端浏览网页时,终端不仅可以显示网页中的图片、文本等内容,还可以显示列表。其中,当在网页中显示列表时,终端当前显示区域的宽度可能大于列表宽度,也可能小于列表宽度。当终端当前显示区域的宽度小于列表宽度时,为了用户能够查看完整的列表内容,可以通过不同的方法显示该列表。

相关技术中,当当前显示区域的宽度小于列表宽度时,终端可以保持列表宽度不变,固定列表首列,并在当前显示区域显示列表的部分内容以及横向滚动条,当检测到用户针对该滚动条的拖动操作时,列表横向滚动,从而显示剩余部分。

然而,如果列表的列项太多,列表宽度太大,而终端当前的显示区域又较小,那么,采用上述方法进行列表显示,用户需要多次反复的拖动滚动条来查看列表中的信息,操作繁琐且极不方便。



技术实现要素:

为了解决相关技术中用户查看列表中的信息时操作繁琐且极不方便的问题,本发明实施例提供了一种列表显示方法及装置。所述技术方案如下:

第一方面,提供了一种列表显示方法,所述方法包括:

获取待显示的目标列表的最小宽度和所述目标列表中多个列项分别对应的属性信息,所述最小宽度为所述目标列表完整显示时所需要占用的最小宽度;

确定当前显示区域的宽度;

当所述最小宽度大于所述当前显示区域的宽度时,基于获取得到的多个属性信息,对所述多个列项中的至少两个列项进行合并,并显示列项合并之后的目标列表,所述列项合并之后的目标列表中的合并列包括所述至少两个列项的内容,且所述合并列的列名与所述至少两个列项的列名不相同。

可选地,所述基于获取得到的多个属性信息,对所述多个列项中的至少两个列项进行合并,包括:

如果所述多个属性信息中存在包括合并组序号的属性信息,则将合并组序号相同的属性信息对应的列项组成一个合并组,以得到m个合并组,所述m为大于或等于1的正整数;

确定所述目标列表的第一实际宽度,所述第一实际宽度是指将所述m个合并组中的列项全部合并之后所述目标列表的实际宽度;

如果所述目标列表的第一实际宽度小于所述当前显示区域的宽度,则对所述m个合并组中的至少一个合并组中的列项进行合并;

如果所述目标列表的第一实际宽度大于所述当前显示区域的宽度,则从所述多个列项中除了所述m个合并组之外剩余的列项中选择至少两个列项,并将所述m个合并组中的列项以及选择的至少两个列项分别进行合并。

可选地,所述对所述m个合并组中的至少一个合并组中的列项进行合并,包括:

按照所述m个合并组分别对应的合并组序号对所述m个合并组进行排序,得到第一排序结果;

令i=1,对所述第一排序结果中的第i个合并组中的列项进行合并,并确定所述目标列表的第二实际宽度,所述第二实际宽度是指将所述第一排序结果中前i个合并组中的列项进行合并之后所述目标列表的实际宽度,所述i为大于或等于1且小于或等于所述m的正整数;

当所述目标列表的第二实际宽度大于所述当前显示区域的宽度时,令所述i=i+1,返回对所述第一排序结果中的第i个合并组中的列项进行合并的步骤,直至所述目标列表的第二实际宽度小于或等于所述当前显示区域的宽度为止。

可选地,所述确定所述目标列表的第二实际宽度,包括:

获取所述第i个合并组中每个列项对应的列项宽度比例以及所述第i个合并组对应的合并列宽度比例;

确定第一宽度和第二宽度,所述第一宽度是指所述第i个合并组中每个列项对应的列项宽度比例与所述最小宽度之间的乘积之和,所述第二宽度是指所述第i个合并组对应的合并列宽度比例与所述最小宽度之间的乘积;

确定所述第一宽度与所述第二宽度之间的第一宽度差值,并将所述最小宽度减去所述第一宽度差值以及所述第i个合并组之前的i-1个合并组分别对应的宽度差值,得到所述目标列表的第二实际宽度。

可选地,所述从所述多个列项中除了所述m个合并组之外剩余的列项中选择至少两个列项,包括:

令k=2,确定所述目标列表的第三实际宽度,所述第三实际宽度是指将所述m个合并组中的列项全部合并以及将所述剩余的列项中倒数k个列项进行合并之后所述目标列表的实际宽度,所述k为大于或等于2的正整数;

如果所述目标列表的第三实际宽度大于所述当前显示区域的宽度,则令所述k=k+1,返回确定所述目标列表的第三实际宽度的步骤,直至所述目标列表的第三实际宽度小于或等于所述当前显示区域的宽度为止时,将所述剩余的列项中倒数k个列项确定为选择的至少两个列项。

可选地,所述将所述m个合并组中的列项以及选择的至少两个列项分别进行合并,包括:

将所述m个合并组中的列项分别进行合并,得到m个合并列;

按照所述选择的至少两个列项的顺序,将每n个列项合并成一个合并列。

可选地,所述显示列项合并之后的目标列表,包括:

当合并为一个合并列的至少两个列项对应的至少两个属性信息中包括合并列列名时,将所述合并列列名作为由所述至少两个列项合并得到的合并列的列名进行显示;或者,

当合并为一个合并列的至少两个列项对应的至少两个属性信息中不包括合并列列名时,将由所述至少两个列项合并得到的合并列的列名设置为预设列名,并按照所述预设列名显示所述合并列;

在所述合并列中显示所述至少两个列项的内容。

可选地,所述确定当前显示区域的宽度之后,还包括:

当所述最小宽度小于所述当前显示区域的宽度时,获取所述多个列项中每个列项的列项宽度比例;

将所述多个列项中每个列项的列项宽度比例与所述当前显示区域的宽度相乘,得到每个列项的列宽;

基于每个列项的列宽显示所述目标列表。

可选地,所述显示列项合并之后的目标列表之后,还包括:

对于所述目标列表包括的r个合并列中的每个合并列,基于所述合并列生成合并列属性信息,所述合并列属性信息包括拆分属性、所述合并列对应的合并组序号、合并列宽度比例和所述合并列中每个列项对应的列项宽度比例,所述r为大于或等于1的正整数;

确定所述合并之后的目标列表的第四实际宽度,所述第四实际宽度是列项合并之后进行显示时所述目标列表的实际宽度;

当检测到所述当前显示区域的宽度大于所述第四实际宽度时,基于所述当前显示区域的宽度和所述第四实际宽度,对所述r个合并列中的至少一个合并列进行拆分。

可选地,所述基于所述当前显示区域的宽度和所述第四实际宽度,对所述r个合并列中的至少一个合并列进行拆分,包括:

按照所述r个合并列对应的合并组序号对所述r个合并列进行排序,得到第二排序结果;

令j=1,确定第三宽度和所述目标列表的第五实际宽度,所述第三宽度是指所述第二排序结果中倒数第j个合并列的每个列项对应的列项宽度比例与所述第五实际宽度的乘积之和,所述第五实际宽度是指将所述第二排序结果中倒数j个合并列进行拆分之后所述目标列表的实际宽度,且在所述j=1时,所述第五实际宽度与所述第四实际宽度相等;

当所述当前显示区域的宽度与所述第五实际宽度之间的差值大于所述第三宽度时,基于所述倒数第j个合并列中每个列项对应的列项宽度比例,将所述倒数第j个合并列进行拆分,令所述j=j+1,返回确定第三宽度的步骤,直至所述当前显示区域的宽度小于或等于所述目标列表的第五实际宽度,或直至所述当前显示区域的宽度与所述目标列表的第五实际宽度之间的差值小于所述第三宽度为止。

第二方面,提供了一种列表显示装置,所述装置包括:

第一获取模块,用于获取待显示的目标列表的最小宽度和所述目标列表中多个列项分别对应的属性信息,所述最小宽度为所述目标列表完整显示时所需要占用的最小宽度;

确定模块,用于确定当前显示区域的宽度;

合并模块,用于当所述最小宽度大于所述当前显示区域的宽度时,基于获取得到的多个属性信息,对所述多个列项中的至少两个列项进行合并;

第一显示模块,用于显示列项合并之后的目标列表,所述列项合并之后的目标列表中的合并列包括所述至少两个列项的内容,且所述合并列的列名与所述至少两个列项的列名不相同。

可选地,所述合并模块包括:

第一确定单元,用于如果所述多个属性信息中存在包括合并组序号的属性信息,则将合并组序号相同的属性信息对应的列项组成一个合并组,以得到m个合并组,所述m为大于或等于1的正整数;

第二确定单元,用于确定所述目标列表的第一实际宽度,所述第一实际宽度是指将所述m个合并组中的列项全部合并之后所述目标列表的实际宽度;

第一合并单元,用于如果所述目标列表的第一实际宽度小于所述当前显示区域的宽度,则对所述m个合并组中的至少一个合并组中的列项进行合并;

第二合并单元,用于如果所述目标列表的第一实际宽度大于所述当前显示区域的宽度,则从所述多个列项中除了所述m个合并组之外剩余的列项中选择至少两个列项,并将所述m个合并组中的列项以及选择的至少两个列项分别进行合并。

可选地,所述第一合并单元包括:

排序子单元,用于按照所述m个合并组分别对应的合并组序号对所述m个合并组进行排序,得到第一排序结果;

第一合并子单元,用于令i=1,对所述第一排序结果中的第i个合并组中的列项进行合并,并确定所述目标列表的第二实际宽度,所述第二实际宽度是指将所述第i个合并组中的列项进行合并之后所述目标列表的实际宽度,所述i为大于或等于1且小于或等于所述m的正整数;

所述第一合并子单元还用于当所述目标列表的第二实际宽度大于所述当前显示区域的宽度时,令所述i=i+1,返回对所述第一排序结果中的第i个合并组中的列项进行合并的步骤,直至所述目标列表的第二实际宽度小于或等于所述当前显示区域的宽度为止。

可选地,所述确定第一合并子单元用于:

获取所述第i个合并组中每个列项对应的列项宽度比例以及所述第i个合并组对应的合并列宽度比例;

确定第一宽度和第二宽度,所述第一宽度是指所述第i个合并组中每个列项对应的列项宽度比例与所述最小宽度之间的乘积之和,所述第二宽度是指所述第i个合并组对应的合并列宽度比例与所述最小宽度之间的乘积,;

确定所述第一宽度与所述第二宽度之间的第一宽度差值,并将所述最小宽度减去所述第一宽度差值以及所述第i个合并组之前的(i-1)个合并组分别对应的宽度差值,得到所述目标列表的第二实际宽度。

可选地,所述第二合并单元包括:

确定子单元,用于令k=2,确定所述目标列表的第三实际宽度,所述第三实际宽度是指将所述m个合并组中的列项全部合并以及将所述剩余的列项中倒数k个列项进行合并之后所述目标列表的实际宽度,所述k为大于或等于2的正整数;

所述确定子单元还用于如果所述目标列表的第三实际宽度大于所述当前显示区域的宽度,则令所述k=k+1,返回确定所述目标列表的第三实际宽度的步骤,直至所述目标列表的第三实际宽度小于或等于所述当前显示区域的宽度为止时,将所述剩余的列项中倒数k个列项确定为选择的至少两个列项。

可选地,所述将第二合并单元包括:

第二合并子单元,用于将所述m个合并组中的列项分别进行合并,得到m个合并列;

第三合并子单元,用于按照所述选择的至少两个列项的顺序,将每n个列项合并成一个合并列。

可选地,所述第一显示模块包括:

第一显示单元,用于当合并为一个合并列的至少两个列项对应的至少两个属性信息中包括合并列列名时,将所述合并列列名作为由所述至少两个列项合并得到的合并列的列名进行显示;

第二显示单元,用于当合并为一个合并列的至少两个列项对应的至少两个属性信息中不包括合并列列名时,将由所述至少两个列项合并得到的合并列的列名设置为预设列名,并按照所述预设列名显示所述合并列;

第三显示单元,用于在所述合并列中显示所述至少两个列项的内容。

可选地,所述装置还包括:

第二获取模块,用于当所述最小宽度小于所述当前显示区域的宽度时,获取所述多个列项中每个列项的列项宽度比例;

计算模块,用于将所述多个列项中每个列项的列项宽度比例与所述当前显示区域的宽度相乘,得到每个列项的列宽;

第二显示模块,用于基于每个列项的列宽显示所述目标列表。

可选地,所述装置还包括:

生成模块,用于对于所述目标列表包括的r个合并列中的每个合并列,基于所述合并列生成合并列属性信息,所述合并列属性信息包括拆分属性、所述合并列对应的合并组序号、合并列宽度比例和所述合并列中每个列项对应的列项宽度比例,所述r为大于或等于1的正整数;

第二确定模块,用于确定所述合并之后的目标列表的第四实际宽度,所述第四实际宽度是列项合并之后进行显示时所述目标列表的实际宽度;

拆分模块,用于当检测到所述当前显示区域的宽度大于所述第四实际宽度时,基于所述当前显示区域的宽度和所述第四实际宽度,对所述r个合并列中的至少一个合并列进行拆分。

可选地,所述拆分模块包括:

排序单元,用于按照所述r个合并列对应的合并组序号对所述r个合并列进行排序,得到第二排序结果;

第二确定单元,用于令j=1,确定第三宽度和所述目标列表的第五实际宽度,所述第三宽度是指所述第二排序结果中倒数第j个合并列的每个列项对应的列项宽度比例与所述第五实际宽度的乘积之和,所述第五实际宽度是指将所述第二排序结果中倒数j-1个合并列进行拆分之后所述目标列表的实际宽度,且在所述j=1时,所述第五实际宽度与所述第四实际宽度相等;

拆分单元,用于当所述当前显示区域的宽度与所述第五实际宽度之间的差值大于所述第三宽度时,基于所述倒数第j个合并列中每个列项对应的列项宽度比例,将所述倒数第j个合并列进行拆分,令所述j=j+1,返回确定第三宽度的步骤,直至所述当前显示区域的宽度小于或等于所述目标列表的第五实际宽度,或直至所述当前显示区域的宽度与所述目标列表的第五实际宽度之间的差值小于所述第三宽度为止。

第三方面,提供一种列表显示装置,所述列表显示装置包括处理器、通信接口、存储器和通信总线;

所述处理器,所述通信接口和所述存储器通过所述通信总线完成相互间的通信;

所述存储器用于存放计算机程序;

所述处理器用于执行存储器上所存放的程序,以实现上述第一方面所述的数据查询方法。

第四方面,提供一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述第一方面所述的列表显示方法。

本发明实施例提供的技术方案带来的有益效果是:将获取到的待显示的目标列表的最小宽度和确定的当前显示区域的宽度进行比较,如果该最小宽度大于当前显示区域的宽度时,则根据该目标列表中多个列项对应的属性信息对该多个列项中的至少两个列项进行合并,由于对列项进行了合并,合并之后的目标列表的实际宽度减小,此时,在当前显示区域中显示该目标列表时,就可以更完整的显示该目标列表中的信息,避免了用户在查看列表信息时多次反复的拖动滚动条的问题,简化了操作,改善了用户体验。

附图说明

为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是本发明实施例提供的一种列表显示方法的流程图;

图2是本发明实施例提供的一种对目标列表进行合并的方法的流程图;

图3是本发明实施例提供的一种对目标列表进行合并的方法的流程图;

图4是本发明实施例提供的一种对目标列表进行合并的方法的流程图;

图5是本发明实施例提供的一种对合并之后的目标列表进行拆分的方法的流程图;

图6a是本发明实施例提供的一种列表显示装置的结构示意图;

图6b是本发明实施例提供的一种合并模块的结构示意图;

图6c是本发明实施例提供的一种列表显示装置的结构示意图;

图6d是本发明实施例提供的一种列表显示装置的结构示意图;

图7是本发明实施例提供的一种列表显示装置框图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。

在对本发明实施例进行详细的解释说明之前,先对本发明实施例的应用场景予以介绍。随着互联网技术的发展,设计人员在设计网站时不必再为多个不同的终端分别设计不同的版本,而是只需要设计一个网站即可以同时兼容多个不同的终端,当该网站的界面在不同的终端上进行显示时,可以根据终端当前显示区域的宽度来调整界面的布局方式,从而为不同终端的用户提供舒适的界面。其中,在网站的界面中可以显示有文本、图片、列表等一系列内容,当该界面中包括列表时,可能会由于列表的列项太多而导致列表宽度大于当前显示区域的宽度,以致终端在当前显示区域中无法完整显示该列表,在这种情况下,即可以根据当前显示区域的宽度对该列表的布局方式进行调整,从而使该列表可以完整的显示在当前显示区域中。本发明实施例提供的列表显示方法即可以用于上述场景中,以实现对界面中的列表的布局方式的调整和显示。

在对本发明实施例的应用场景进行了详细的解释说明之后,接下来,将通过以下实施例,同时结合附图对该列表显示方法进行详细的解释说明。

图1是本发明实施例提供的一种列表显示方法,如图1所示,该方法可以应用于终端中,包括以下步骤:

步骤101:获取待显示的目标列表的最小宽度和该目标列表中多个列项分别对应的属性信息,最小宽度为该目标列表完整显示时所需要占用的最小宽度。

通常,当网站的界面中包括有列表时,在该网站的界面数据中会包含有列表代码,该列表代码中包括该列表中的每个列项对应的属性信息,该属性信息用于指示对应的列项的具体配置。

当终端显示包含有列表的某网站的界面时,终端可以获取该待显示的目标列表的最小宽度,该最小宽度是在该目标列表的代码中预先设置的能够保证该目标列表完整显示所需要占用的最小宽度。其中,该目标列表完整显示是指该目标列表的所有列项中的数据信息均能显示完整。

另外,终端还可以从该目标列表的代码中获取该目标列表中多个列项分别对应的属性信息。对于该多个列项中的每个列项的属性信息,该属性信息中可以包括该列项的内容、列项宽度比例等基本信息,也可以包括用于指示该列项为需要合并的列项的合并属性信息以及该列项对应的合并组以及合并组序号、该列项在合并后的合并列中的显示排序以及该列项对应的合并列的列名等合并信息。当然,该属性信息也可以只包括列项的内容、列项宽度比例等基本信息,而不包括合并信息。或者,对于不参与合并的列项,在该列项的属性信息中不仅包括基本信息,还可以包括用于指示该列项不参与合并的信息。

其中,列项宽度比例是指该列项的宽度占该目标列表的最小宽度的比例。属于同一个合并组的列项的合并组序号是相同的,也就是说,具有相同合并组序号的列项将被合并为一个合并列。另外,相较于只包括基本信息的属性信息对应的列项,在进行合并时,优先合并既包括基本信息,又包括合并属性信息和合并信息的列项,而对于包括用于指示该列项不参与合并的信息的列项而言,在进行合并时,该列项可以不参与合并。

需要说明的是,该属性信息中包括的合并信息以及用于指示该列项不参与合并的信息可以是由设计该目标列表的设计人员在生成该目标列表代码时,根据该目标列表的内容自行设置的。例如,对于该目标列表中内容分类属于同一类的某几个列项,设计人员可以在这几个列项分别对应的属性信息中设置合并信息,并将这几个列项的合并信息中的合并组和合并组序号设置为相同的,也即是,在进行合并时,终端可以将这几个列项一起合并组成一个合并列。再例如,当在该目标列表的多个属性信息中设置了多个合并组时,技术人员可以根据组成合并组的列项的重要程度,为各个合并组设置不同的合并组序号,该合并组序号不仅可以用于区分不同的合并组,还可以用于指示合并时该合并组的优先级。例如,该目标列表中包括三个合并组,三个合并组的合并组序号分别为1、2、3,在这种情况下,当进行合并时,即可以按照该合并组序号,优先将合并组序号为1的合并组对应的列项进行合并。

步骤102:确定当前显示区域的宽度。

当获取到待显示的目标列表的最小宽度和多个属性信息之后,终端可以确定当前显示区域的宽度,该当前显示区域的宽度可以是该终端的屏幕的宽度,也可以是该终端中用于显示该目标列表的区域。

步骤103:当最小宽度大于当前显示区域的宽度时,基于获取得到的多个属性信息,对该多个列项中的至少两个列项进行合并,并显示列项合并之后的目标列表。

当确定当前显示区域的宽度之后,终端可以将该当前显示区域的宽度和目标列表的最小宽度进行比较,如果当前显示区域的宽度大于或等于该目标列表的最小宽度,则可以确定该目标列表可以在终端的当前显示区域中完整显示,此时,终端可以直接在当前显示区域显示该目标列表。如果当前显示区域的宽度小于该目标列表的最小宽度,则可以确定在当前显示区域中无法完整显示该目标列表,此时,终端可以根据获取到的多个属性信息,对该多个列项中的至少两个列项进行合并,并显示列项合并之后的目标列表。

其中,当最小宽度大于当前显示区域的宽度时,终端可以基于获取到的多个属性信息,通过对该多个列项中的至少两个列项进行一次性合并来使合并之后的目标列表的实际宽度满足当前显示区域的宽度,也可以通过多次合并得到合并之后的目标列表,以使多次合并之后的目标列表的实际宽度满足当前显示区域的宽度,当然,终端还可以将上述两种方法进行结合,以对该多个列项中的至少两个列项进行合并。具体的,上述对该多个列项中的至少两个列项进行合并的实现方式将通过后续实施例进行详细的解释说明。

当对该多个列项中的至少两个列项进行合并之后,如果该至少两个列项合并为一个合并列,且该至少两个列项对应的至少两个属性信息中包括合并列列名时,那么,终端可以将该合并列列名作为由该至少两个列项合并后得到的合并列的列名进行显示;当然,如果该至少两个列项对应的至少两个属性信息中不包括合并列列名时,则将该至少两个列项合并之后得到的合并列的列名设置为预设列名,并按照该预设列名显示该合并列。

还需要说明的是,当对该合并列进行显示时,该合并列包括该至少两个列项的内容。具体的,对于该至少两个列项中每个列项对应的内容,终端可以在该合并列中显示合并前的每个列项的列名,并且在该列名之后显示对应的列项内容。

当对该多个列项中的至少两个列项进行合并之后,如果该至少两个列项对应的属性信息中包括该列项在合并后的合并列中的显示排序,那么,终端可以按照该显示排序将该至少两个列项显示在该目标列表的对应的合并列中。

可选地,当最小宽度小于当前显示区域的宽度时,终端也可以将获取到的多个属性信息中每个属性信息包括的列项宽度比例乘以当前显示区域的宽度,从而得到该目标列表的多个列项中的每个列项的宽度,之后,终端可以按照确定的列项宽度将该目标列表铺满显示在当前显示区域中。

在本发明实施例中,终端将获取到的待显示的目标列表的最小宽度和确定的当前显示区域的宽度进行比较,如果该最小宽度大于当前显示区域的宽度时,则根据该目标列表中多个列项对应的属性信息对该多个列项中的至少两个列项进行合并,由于对列项进行了合并,合并之后的目标列表的实际宽度减小,此时,在当前显示区域中显示该目标列表时,就可以更完整的显示该目标列表中的信息,避免了用户在查看列表信息时多次反复的拖动滚动条的问题,简化了操作,改善了用户体验。

基于上述实施例中步骤103的描述,当最小宽度大于当前显示区域的宽度时,终端可以采用不同的方法对该目标列表的多个列项中的至少两个列项进行合并。图2是本发明实施例提供的一种对多个列项中的至少两个列项进行合并的方法的流程图,如图2所示,该方法包括以下步骤:

步骤201:如果多个属性信息中存在包括合并组序号的属性信息,则将合并组序号相同的属性信息对应的列项组成一个合并组,以得到m个合并组,m为大于或等于1的正整数。

基于前述实施例中的描述可知,对于目标列表的多个属性信息中的每个属性信息,该属性信息中可以包括用于指示该列项可以进行合并的合并属性信息以及该列项对应的合并组以及合并组序号、该列项在合并后的合并列中的显示排序以及该列项对应的合并列的列名等合并信息,也可以不包括。也即是说,在该目标列表的多个属性信息中,可能存在包括有合并组序号的属性信息,也可能不存在包括有合并组序号的属性信息。而且,由于在合并时要优先合并具有合并属性的列项,而如果属性信息包括合并组序号,则该属性信息对应的列项一定是具有合并属性的列项,因此,当最小宽度大于当前显示区域的宽度时,终端首先可以从该目标列表的多个属性信息中查找是否存在包括合并组序号的属性信息。

如果该多个属性信息中存在包括合并组序号的属性信息,那么,由于属于同一个合并组的列项对应的合并组序号是相同的,因此,终端可以将合并组序号相同的属性信息对应的列项组成一个合并组,从而得到该目标列表包括的m个合并组。

进一步地,如果该多个属性信息中不存在包括合并组序号的属性信息,也即是,该目标列表中的多个列项不存在合并的优先级,此时,终端可以参考步骤204中相关的实现方式对该目标列表的多个列项中的至少两个列项进行合并。

例如,表1是本发明实施例提供的一种目标列表,表2为该目标列表的多个列项对应的属性信息,如表2中所示,该目标列表的第1-3个列项分别对应的属性信息中均只包括该列项的列名和列项固定比例等基本信息。第4-6个列项分别对应的属性信息中均包括合并组序号“group1”,因此,第4、5、6个列项属于同一合并组,第7、8个列项分别对应的属性信息中均包括合并组序号“group2”,也即是,第7、8个列项属于同一个合并组,第9个列项的属性信息中除了包括基本信息之外,还包括用于指示该列项不参与合并的信息“fix:true”,也即是,第9个列项在任何情况下均不参与合并。在这种情况下,终端可以根据该多个属性信息将第4-6个列项组成一个合并组,将第7、8个列项组成一个合并组,从而得到该目标列表的2个合并组。

表1目标列表

表2目标列表的多个列项对应的属性信息

步骤202:确定目标列表的第一实际宽度,该第一实际宽度是指将m个合并组中的列项全部合并之后该目标列表的实际宽度。

当得到m个合并组之后,终端可以首先根据该m个合并组中的列项分别对应的属性信息以及合并列宽度比例,计算如果将该m个合并组全部进行合并之后该目标列表的实际宽度,即该目标列表的第一实际宽度。其中,合并列宽度比例是预先设置的固定比例,且该合并列宽度比例是指合并后的合并列的宽度占最小宽度的比例。

当确定第一实际宽度之后,终端可以将该第一实际宽度与当前显示区域的宽度进行比较。如果该第一实际宽度小于当前显示区域的宽度,则说明终端只需将该m个合并组进行合并或者只需将该m个合并组中的至少一个合并组进行合并,就能保证该目标列表完整显示在当前显示区域中。此时,终端可以执行步骤203,来对该m个合并组中的至少一个合并组进行合并。

如果该第一实际宽度大于当前显示区域的宽度,则说明终端即使将m个合并组全部进行合并,合并之后的目标列表也依然不能完整的显示在当前显示区域中,此时,终端即需要执行步骤204,从除了所述m个合并组以及不参与合并的列项之外剩余的列项中选择至少两个列项来进行合并。

需要说明的是,当得到m个合并组之后,对于该m个合并组中的每个合并组,终端可以根据该合并组中的列项对应的属性信息中的列项宽度比例,计算该合并组中每个列项的宽度,从而得到该合并组中所有列项的宽度之和。按照上述方法,终端可以得到m个合并组中所有列项的宽度之和。之后,终端可以将合并列宽度比例乘以最小宽度,得到一个合并列的宽度,由于m个合并组合并之后会得到m个合并列,因此,合并之后m个合并列的宽度之和为m乘以一个合并列的宽度。之后,终端可以将m个合并组中所有列项的宽度之和减去m个合并列的宽度之和,得到该目标列表的第一实际宽度。

步骤203:如果该第一实际宽度大于当前显示区域的宽度,对m个合并组中的至少一个合并组中的列项进行合并。

基于步骤202中的描述,当终端确定第一实际宽度小于当前显示区域的宽度时,此时,终端可以对m个合并组中的至少一个合并组中的列项进行合并。

其中,终端对m个合并组中的至少一个合并组中的列项进行合并的操作可以分为以下三个步骤:

2031:按照m个合并组分别对应的合并组序号对m个合并组进行排序,得到第一排序结果。

终端可以将m个合并组按照合并组序号从小到大的顺序进行排序,也可以按照合并组序号从大到小的顺序进行排序。当按照合并组序号从小到大的顺序进行排序时,合并组序号越小,该合并组中的列项的合并优先级越高。当按照合并组序号从大到小的顺序进行排序时,合并组序号越大,该合并组中的列项的合并优先级越高。本发明实施例中以按照合并组序号从小到大的顺序进行排序为例进行解释说明。

2032:令i=1,对第一排序结果中的第i个合并组中的列项进行合并,并确定目标列表的第二实际宽度,第二实际宽度是指将第一排序结果中前i个合并组中的列项进行合并之后目标列表的实际宽度,i为大于或等于1且小于或等于m的正整数。

当得到第一排序结果之后,首先令i=1,终端可以将该第一排序结果中的第1个合并组中的列项进行合并,并确定第1个合并组合并之后该目标列表的实际宽度,也即第二实际宽度。

需要说明的是,终端确定第二实际宽度的操作可以为:获取第i个合并组中每个列项对应的列项宽度比例以及第i个合并组对应的合并列宽度比例;确定第一宽度和第二宽度,第一宽度是指第i个合并组中每个列项对应的列项宽度比例与最小宽度之间的乘积之和,第二宽度是指第i个合并组对应的合并列宽度比例与最小宽度之间的乘积;确定第一宽度与第二宽度之间的第一宽度差值,并将最小宽度减去第一宽度差值以及第i个合并组之前的i-1个合并组分别对应的宽度差值,得到目标列表的第二实际宽度。

其中,当i=1时,终端可以将第1个合并组中每个列项对应的宽度比例与最小宽度相乘,得到每个列项的宽度,将每个列项的宽度相加,得到第1个合并组中的所有列项在合并之前所占用的总宽度,也即第一宽度。之后,终端可以将合并列宽度比例与最小宽度相乘,得到将第1个合并组中的列项进行合并之后得到的合并列的宽度,也即第二宽度。将该第一宽度与第二宽度相减,得到的第一宽度差值,该第一宽度差值即为将第1个合并组中的列项进行合并之后该目标列表减小的宽度。将最小宽度减去该第一宽度差值,即为将第1个合并组中的列项进行合并之后该目标列表的实际宽度。

当i=2时,终端在计算得到第2个合并组合并之后对应的第一宽度差值之后,需要将最小宽度减去该第2个合并组合并之后对应的第一宽度差值和第1个合组列合并之后对应的第一宽度差值,以得到第二实际宽度。

以此类推,终端在计算得到第i个合并组合并之后对应的第一宽度差值之后,则需要将最小宽度减去第i个合并组合并之后对应的第一宽度差值以及第i个合并组之前的i-1个合并组分别对应的宽度差值,以得到该目标列表的第二实际宽度。

2033:当目标列表的第二实际宽度大于当前显示区域的宽度时,令i=i+1,返回对第一排序结果中的第i个合并组中的列项进行合并的步骤,直至目标列表的第二实际宽度小于或等于当前显示区域的宽度为止。

当确定了合并第1个合并组中的列项之后的目标列表的第二实际宽度之后,终端可以将该第二实际宽度与当前显示区域的宽度进行比较,如果目标列表的第二实际宽度大于当前显示区域的宽度,即说明该目标列表还不能完整的显示在当前显示区域中,需要对第2个合并组继续进行合并,也即是,终端需要令i=i+1,返回2032继续进行合并,并在合并之后再次计算目标列表的第二实际宽度,以及继续比较第二实际宽度与当前显示区域的宽度的大小。

通过上述i次循环计算,直至第二实际宽度小于当前显示区域的宽度时,说明该目标列表可以完整的显示在当前显示区域中,此时,终端可以停止循环,并将合并了第i个组之后的目标列表显示在当前显示区域中。

如果在合并了第1个合并组之后,该目标列表的第二实际宽度就小于当前显示区域的宽度,此时,终端则可以直接将合并了第1个合并组之后的目标列表完整显示在当前显示区域中。

步骤204:如果该第一实际宽度小于当前显示区域的宽度,从多个列项中除了m个合并组之外剩余的列项中选择至少两个列项,并将m个合并组中的列项以及选择的至少两个列项分别进行合并。

基于步骤202中的描述,如果该目标列表的第一实际宽度大于当前显示区域的宽度,那么,说明即使将该m个合并组中的全部列项进行合并,合并之后的目标列表依然不能完整的显示在当前显示区域中。在这种情况下,终端可以从该目标列表的多个列项中除了m个合并组之外剩余的列项中选择至少两个列项,并将选择的至少两个列项和m个合并组分别进行合并。

需要说明的是,终端从该目标列表的多个列项中除了m个合并组之外剩余的列项中选择至少两个列项的操作可以为:令k=2,确定目标列表的第三实际宽度,该第三实际宽度是指将m个合并组中的列项全部合并以及将剩余的列项中倒数k个列项进行合并之后目标列表的实际宽度,k为大于或等于2的正整数;如果目标列表的第三实际宽度大于当前显示区域的宽度,则令k=k+1,返回确定目标列表的第三实际宽度的步骤,直至目标列表的第三实际宽度小于或等于当前显示区域的宽度为止时,将剩余的列项中倒数k个列项确定为选择的至少两个列项。

其中,终端首先可以令k=2,确定k=2时该目标列表的实际宽度。也即是,终端可以计算当选择倒数2个列项,并对m个合并组全部进行合并时,合并之后的目标列表的实际宽度,也即第三实际宽度。将该第三实际宽度与当前显示区域的宽度进行比较,如果该第三实际宽度小于或等于当前显示区域的宽度,则说明只需要将m个合并组中的列项以及该倒数2个列项进行合并,即可以保证合并之后的目标列表能够在当前显示区域中完整显示。如果该第三实际宽度大于当前显示区域的宽度,则说明即使将m个合并组中的列项以及该倒数2个列项进行合并,也依然不能完整显示该目标列表。此时,终端可以令k=k+1,返回确定目标列表的第三实际宽度的步骤,选择更多的列项,直至选择的列项的个数k能够使第三实际宽度小于或等于当前显示区域的宽度为止,此时,即可以将该k确定为选择的至少两个列项。

可选地,对于选择的k个列项,终端可以按照选择该k个列项的顺序,将每n个列项合并成一个合并列,也即是,终端可以将k个列项分成至少一个合并组进行合并。例如,终端可以将每相邻的两个列项作为一个合并组进行合并,当然,终端也可以直接将该k个列项作为一个合并组进行合并,从而得到一个合并列。

需要说明的是,如果终端是直接将该k个列项作为一个合并组进行合并,那么,在确定第三实际宽度时,终端可以计算该k个列项的宽度之和,并计算一个合并列的宽度,之后,终端可以计算k个列项的宽度之和与一个合并列的宽度之间的宽度差,并用最小宽度减去第一实际宽度和该宽度差,从而得到该目标列表的第三实际宽度。

如果终端是按照选择k个列项的顺序,将该k个列项中每n个列项作为一个合并组进行合并,那么,在确定第三实际宽度时,终端可以根据n,确定该k个列项合并之后能够得到的合并列的个数,并计算该k个列项的宽度之和与所有合并列的宽度之和的宽度差,之后,终端可以将最小宽度减去第一实际宽度和该宽度差,得到该目标列表的第三实际宽度。

例如,假设n=2,当k=2时,终端可以计算倒数两个列项的宽度之和与一个合并列的宽度之间的宽度差,并将最小宽度减去第一实际宽度和该宽度差,得到该目标列表的第三实际宽度。当k=4时,终端可以计算倒数四个列项的宽度之和与两个合并列的宽度之和的宽度差,并将最小宽度减去第一实际宽度和该宽度差,得到该目标列表的第三实际宽度。

在本发明实施例中,当最小宽度大于当前显示区域的宽度时,终端可以从该目标列表的多个属性信息中确定包括的m个合并组,之后,终端可以确定当对该m个合并组全部进行合并之后该目标列表的第一实际宽度,如果将第一实际宽度小于当前显示区域的宽度,则可以确定只对该m个合并组中的至少一个合并组进行合并即可,如果第一实际宽度大于当前显示区域的宽度,则可以直接确定m个合并组将全部被合并,此时,只需要从除了m个合并组的列项之外的剩余列项中选至少两个列项,并将选择的至少两个列项和m个合并组分别合并,即可以保证该目标列表能够完整的显示在当前显示区域中,相较于相关技术中列表的布局方式更加灵活,即使对于不同的终端,该目标列表也可以保证完整的进行显示。

下面将通过一个具体的例子来对上述图2所示的方法中的步骤进行说明。在这里,以表1和表2中提供的目标列表和该目标列表的多个属性信息为例进行说明。

假设该目标列表的最小宽度为w1,当前显示区域的宽度为w2,当w1>w2时,终端根据该目标列表的9个属性信息得到2个合并组,并且确定得到当将这2个合并组合并之后,该目标列表的第一实际宽度为w3。

假设该w3<w2,此时,终端首先可以将group1中的列项进行合并,也即是,将第4-6个列项合并为一个合并列。之后,终端可以计算合并之后的目标列表的实际宽度w4,并将该w4与w2比较,如果w4<w2,那么,终端可以直接将该合并之后的目标列表显示在当前显示区域中。显示时,终端可以按照该合并组中的列项对应的属性信息中的显示排序,将该几个列项显示在一个合并列中,例如,表2中所示的第4-6个列项对应的显示排序分为col1、col2和col3,那么,在显示时,即按照该顺序将第4-6个列项显示在合并列中。如果合并组中的列项对应的属性信息中不包括显示排序,则按照对这几个列项的合并顺序进行显示,当然也可以随机显示。另外,如果该合并组中的列项对应的属性信息中还包括合并列的列名,那么,终端还可以根据该合并列的列名显示该合并列。例如,第4-6个列项对应的合并列的列名为“服务器信息”,那么,在合并之后,该合并列的列名则为“服务器信息”。按照表2中所示的属性信息合并group1之后得到的目标列表如表3所示。

表3合并group1之后的目标列表

假设w4>w2,此时,说明终端只合并group1,合并后的目标列表依然不能完整显示在当前显示区域中,还需要合并group2,也即是,需要将第7、8个列项进行合并之后,才能使该目标列表完整显示在当前显示区域中。按照表2中所示的属性信息合并group2之后得到的目标列表如表4所示。

表4合并group2之后的目标列表

假设w3>w2,此时,说明即使终端将group1和group2中的列项全部进行合并,合并之后的目标列表也依然无法完整显示在当前显示区域中,此时,终端需要从剩余的选项中选择至少两个列项进行合并。其中,由于最后一个列项的属性信息中包括用于指示该列项不参与合并的信息,因此,将从除最后一列以及合并组中的列项之外的其他三列中选择至少两列进行合并。终端首先可以计算如果将倒数2个列项和group1和group2进行合并,合并之后该目标的第三实际宽度w5,并将w5与w2比较,如果w5<w2,那么,终端可以将倒数两个列项和group1和group2分别进行合并,得到合并后的目标列表如表5所示。在这种情况下,由于倒数2个列项对应的属性信息中并不包括合并信息,因此,终端可以按照合并这两个列项的合并顺序在合并列中显示这两个列项,并且,合并列的列名可以设置为该group3。

上述实施例中介绍了终端先根据目标列表的多个属性信息确定m个合并组,之后,确定当将该m个合并组全部合并时该目标列表的第一实际宽度,并根据该第一实际宽度来进行合并的方法,在实际应用中,终端也可以不确定第一实际宽度,而是每合并得到一个合并列,确定一次该目标列表的实际宽度,并比较一次目标列表的实际宽度与当前显示区域的宽度的大小,从而决定是否继续进行合并,下面将结合附图3对该种合并方法进行解释说明,如图3所示,该方法包括以下步骤:

步骤301:如果多个属性信息中存在包括合并组序号的属性信息,则将合并组序号相同的属性信息对应的列项组成一个合并组,以得到m个合并组,m为大于或等于1的正整数。

本步骤的具体实现方式可以参考前述实施例中步骤201的相关解释说明,本发明实施例在这里不再赘述。

步骤302:按照m个合并组分别对应的合并组序号对m个合并组进行排序,得到第一排序结果。

本步骤的具体实现方式可以参考前述实施例中有关2031的相关解释说明,本发明实施例在这里不再赘述。

步骤303:令i=1,对第一排序结果中的第i个合并组中的列项进行合并,并确定目标列表的第二实际宽度,第二实际宽度是指将第一排序结果中前i个合并组中的列项进行合并之后目标列表的实际宽度,i为大于或等于1且小于或等于m的正整数。

本步骤的具体实现方式可以参考前述实施例中2032的相关解释说明,本发明实施例在这里不再赘述。

步骤304:当目标列表的第二实际宽度大于当前显示区域的宽度时,令i=i+1,返回对第一排序结果中的第i个合并组中的列项进行合并的步骤,直至目标列表的第二实际宽度小于或等于当前显示区域的宽度为止,或者直至目标列表的第二实际宽度大于当前显示区域的宽度且i=m为止。

本步骤的具体实现方式可以参考前述实施例中2033的相关解释说明,本发明实施例在这里不再赘述。

另外,如果通过步骤303和步骤304的多次循环,将该目标列表的m个合并组均进行合并之后,该目标列表的实际宽度依然大于当前显示区域的宽度,此时,终端可以通过步骤305中的方法对该目标列表的多个列项中剩余的列项继续进行合并。

步骤305:如果i=m且该目标列表的第二实际宽度大于当前显示区域的宽度,从多个列项中除了m个合并组之外剩余的列项中选择至少两个列项进行合并。

其中,当终端从该多个列项中除m个合并组之外剩余的列项中选择至少两个列项时,终端可以通过步骤204中所述的方法,通过多次循环计算能够使合并之后的目标列表的实际宽度小于当前显示区域的宽度的列项的个数k。当然,终端也可以一次选择n个列项,并将该n个列项合并成一个合并列,计算合并之后的目标列表的实际宽度,如果依然大于当前显示区域的宽度,则再选择n个列项进行合并,并确定合并之后的目标列表的实际宽度,直至该目标列表的实际宽度小于当前显示区域的宽度时,停止合并。

在本发明实施例中,终端可以每合并得到一个合并列,即将该合并之后的目标列表的实际宽度与当前显示区域的宽度进行比较,直到该目标列表的实际宽度小于或等于当前显示区域的宽度时,才停止对该目标列表中的列项进行合并,这样,终端可以保证使合并后的目标列表完整的显示在当前显示区域中,保证了列表中数据信息的完整性,为用户查看该目标列表中的数据带来了方便,改善了用户体验。

在上述实施例中介绍了终端每合并得到一个合并列,并将合并之后的目标列表的实际宽度与当前显示区域的宽度进行比较,以决定是否继续进行对目标列表进行合并的方法。当然,终端还可以通过下述实施例中介绍的方法确定多个需要合并的合并组和列项,从而一次性的合并该确定的合并组和列项,以使合并之后的目标列表能够完整的显示在当前显示区域。下面将结合图4对该种合并方法进行介绍。如图4所示,该方法包括以下步骤:

步骤401:如果多个属性信息中存在包括合并组序号的属性信息,则将合并组序号相同的属性信息对应的列项组成一个合并组,以得到m个合并组,m为大于或等于1的正整数。

本步骤的具体实现方式可以参考前述实施例中步骤201的相关解释说明,本发明实施例在这里不再赘述。

步骤402:从该m个合并组选择至少一个合并组或从该多个列项中除m个合并组之外剩余的列项中选择至少两个列项,并将选择的合并组中的列项以及至少两个列项分别进行合并。

其中,终端可以根据当前显示区域的宽度来选择需要合并的合并组,并且,如果选择所有合并组依然不能使合并之后的目标列表的实际宽度小于当前显示区域的宽度,那么,终端还可以从多个列项中除了m个合并组之外剩余的列项中选择至少两个列项。当选择的合并组和列项能够使合并之后的目标列表的实际宽度小于当前显示区域的宽度时,终端可以将选择的合并组和至少两个列项一次性进行合并。这样,合并之后的目标列表就可以直接完整的显示在当前显示区域中。

具体的,终端从从该m个合并组选择至少一个合并组或从该多个列项中除m个合并组之外剩余的列项中选择至少两个列项的操作可以为:按照m个合并组分别对应的合并组序号对m个合并组进行排序,得到第一排序结果。令i=1,确定目标列表的第二实际宽度,第二实际宽度是指当将第一排序结果中前i个合并组中的列项进行合并时目标列表的实际宽度,i为大于或等于1且小于或等于m的正整数。当目标列表的第二实际宽度大于当前显示区域的宽度时,令i=i+1,返回对确定目标列表的第二实际宽度的步骤,直至目标列表的第二实际宽度小于或等于当前显示区域的宽度为止,或者直至目标列表的第二实际宽度大于当前显示区域的宽度且i=m为止时,将第一排序结果中前i个合并组确定为选择的至少一个合并组。如果直至i=m时,目标列表的第二实际宽度仍大于当前显示区域的宽度,那么,从多个列项中除了m个合并组之外剩余的列项中选择至少两个列项。

需要说明的是,终端确定目标列表的第二实际宽度的具体实现方式可以参考前述实施例中2032的相关实现方式,终端从多个列项中除了m个合并组之外剩余的列项中选择至少两个列项的具体实现方式则可以参考前述实施例中步骤204和步骤305中的相关实现方式,本发明实施例在这里不再赘述。

在本发明实施例中,终端可以根据当前显示区域的宽度来选择需要合并的合并组,并且,如果选择所有合并组依然不能使合并之后的目标列表的实际宽度小于当前显示区域的宽度,终端可以从多个列项中除了m个合并组之外剩余的列项中选择至少两个列项。当选择的合并组和列项能够使合并之后的目标列表的实际宽度小于当前显示区域的宽度时,终端可以将选择的合并组和至少两个列项一次性进行合并,这样,终端可以通过一次性合并使合并之后的目标列表的宽度适应当前显示区域的宽度,不必再每合并一次,比较一次目标列表的宽度和当前显示区域的宽度,减少了合并的操作次数。

上面通过附图1-4介绍了当最小宽度大于当前显示区域的宽度时,根据该目标列表的多个属性信息对该目标列表的多个列项中的至少两个列项进行合并,并显示该合并之后的目标列表的具体实现方式。当对合并之后的目标列表进行显示之后,在显示的过程中,由于用户的操作,可能会导致当前显示区域的宽度发生变化,例如,用户可能会对当前显示区域的宽度进行调整,缩小或者是放大当前显示区域,或者,用户可能会将显示与当前终端上的目标列表切换到其他终端上进行显示,导致显示区域的宽度发生变化。其中,当变化后的当前显示区域的宽度大于目标列表当前的实际宽度时,终端可以将合并之后的目标列表进行拆分,以使目标列表的宽度适应当前显示区域的宽度,从而为用户提供更加舒适的显示界面。图5是本发明实施例提供的一种对合并之后的目标列表进行拆分的方法的流程图,如图5所示,该方法包括以下步骤:

步骤501:对于目标列表包括的r个合并列中的每个合并列,基于合并列生成合并列属性信息,合并列属性信息包括拆分属性、合并列对应的合并组序号、合并列宽度比例和合并列中每个列项对应的列项宽度比例,r为大于或等于1的正整数。

当对目标列表的多个列项中的至少两个列项进行合并之后,如果合并时对r个合并组进行了合并,或者,如果合并组的个数和选择的至少两个列项一共组成了r个合并组,那么,合并之后的目标列表中将包括r个合并列。对于该r个合并列中的每个合并列,根据合并列以及组成该合并列的列项,可以生成该合并列的合并列属性信息。其中,组成该合并列的列项即为该合并列对应的合并组中包括的列项。

例如,以表3所示的合并之后的目标列表为例,合并列为“服务器信息”,根据该合并列,终端可以生成该合并列对应的合并列属性信息为“field:‘cpu’,title:‘服务器信息’,percent:0.1,merge:true,group:‘group1’,mergefiled:‘cpu/memory/wa’”。其中,percent:0.1为该合并列的合并列宽度比例,merge:true为该合并列的拆分属性,用于指示该合并列可以进行拆分,group1为该合并列对应的合并组以及合并组序号,cpu/memory/wa为组成该合并列的列项在该合并列中的显示顺序。

进一步地,在该合并列属性信息中还可以包括该合并列中每个列项对应的列项宽度比例,例如,在上述例子中,当包括每个列项对应的列项宽度比例时,该合并列的合并列属性信息可以为“field:‘cpu’,title:‘服务器信息’,percent:0.1,merge:true,group:‘group1’,mergefiled:‘cpu/memory/wa’,perrec:0.06/0.06/0.15”。

步骤502:确定合并之后的目标列表的第四实际宽度,第四实际宽度是列项合并之后进行显示时目标列表的实际宽度。

当对目标列表进行合并之后,终端还可以确定合并并且显示在当前显示区域中的目标列表的第四实际宽度。其中,对于未进行合并的列项,终端可以根据该列项对应的列项宽度比例计算该列项的宽度,对于合并列,终端可以根据该合并列的合并列宽度比例来计算该合并列的宽度,之后,将未进行合并的列项的宽度和合并列的宽度相加,即为该目标列表的第四实际宽度。

步骤503:当检测到当前显示区域的宽度大于第四实际宽度时,基于当前显示区域的宽度和第四实际宽度,对r个合并列中的至少一个合并列进行拆分。

由于在对合并之后的目标列项进行显示的过程中,由于用户的操作,可能会导致当前显示区域的宽度发生变化。如果终端确定变化后的当前显示区域的宽度小于第四实际宽度,那么,终端可以通过前述实施例中介绍的方法对该目标列表中除合并列之外剩余的列项继续进行合并。如果终端确定当前显示区域的宽度大于第四实际宽度,那么,终端可以将目标列表中的合并列进行拆分,以使该目标列表的宽度适应当前显示区域的宽度。

其中,终端将目标列表中的合并列进行拆分的步骤可以为:

5031:按照r个合并列对应的合并组序号对r个合并列进行排序,得到第二排序结果。

终端首先可以按照目标列表的r个合并列对应的合并组序号对r个合并列进行排序,得到第二排序结果。其中,排序的具体方式与前述实施例中得到第一排序结果的方式相同,本发明实施例不再赘述。在本实施接下来的步骤中以按照合并组序号从小到大的顺序进行排序为例进行解释说明。

5032:令j=1,确定第三宽度和目标列表的第五实际宽度,第三宽度是指第二排序结果中倒数第j个合并列的每个列项对应的列项宽度比例与第五实际宽度的乘积之和,第五实际宽度是指将第二排序结果中倒数j-1个合并列进行拆分之后目标列表的实际宽度,且在j=1时,第五实际宽度与第四实际宽度相等。

当得到第二排序结果之后,首先令j=1,终端可以确定当将第二排序结果中倒数j-1个合并列进行拆分之后的目标列表的实际宽度,也即第五实际宽度,当j=1时,第五实际宽度即为第四实际宽度。之后,终端可以将倒数第j个合并列的每个列项对应的列项宽度比例与第五实际宽度相乘,得到如果将倒数第j个合并列进行拆分,拆分之后该第j个合并列中的每个列项所占用的宽度。之后,终端可以将该第j个合并列中每个列项占用的宽度相加,得到第三宽度。

5033:当当前显示区域的宽度与第五实际宽度之间的差值大于第三宽度时,基于倒数第j个合并列中每个列项对应的列项宽度比例,将倒数第j个合并列进行拆分,令j=j+1,返回确定第三宽度的步骤,直至当前显示区域的宽度小于或等于目标列表的第五实际宽度,或直至当前显示区域的宽度与目标列表的第五实际宽度之间的差值小于第三宽度为止。

当确定第三宽度之后,为了避免由于拆分之后的目标列表的实际宽度又大于当前显示区域的实际宽度而造成的死循环,终端可以计算当前显示区域的宽度与第五实际宽度之间的差,并将当前显示区域的宽度与第五实际宽度之间的差与第三宽度进行比较,如果当前显示区域的宽度与第五实际宽度之间的差大于第三宽度,则说明将该合并列拆分之后不会造成目标列表的实际宽度大于当前显示区域的宽度。此时,终端可以基于倒数第j个合并列的合并列属性信息对该合并列进行拆分。

当对倒数第j个合并列进行拆分之后,终端可以令j=j+1,再次确定第三宽度以及第五实际宽度,并将当前显示区域的宽度和第五实际宽度之间的差与第三宽度进行比较,直至当前显示区域的宽度小于或等于目标列表的第五实际宽度,或直至当前显示区域的宽度与目标列表的第五实际宽度之间的差值小于第三宽度时,说明目标列表的实际宽度已经适应当前显示区域的宽度或者说明目标列表已经不适宜继续拆分,如果继续拆分将造成目标列表的实际宽度大于当前显示区域的宽度。

需要说明的是,当对目标列表的倒数第j个合并列进行拆分时,终端可以根据该合并列对应的合并列属性信息中包括的该合并列的列项的显示顺序逐个进行拆分,拆分之后的列项的宽度为该列项的列项宽度比例与第五实际宽度的乘积。

在本发明实施例中,当终端检测到当前显示区域的宽度大于合并之后的目标列表的实际宽度之后,终端可以对该目标列表中包括的合并列进行拆分,以使目标列表适应当前显示区域的宽度,从而为用户提供更加舒适的显示界面。

上面结合附图1-5介绍了对目标列表进行合并和显示,并对合并之后的目标列表进行拆分和显示的方法,接下来将对执行该上述方法的装置进行详细的解释说明。

图6a本发明实施例提供的一种列表显示装置的框图,如图6a所示,该装置包括第一获取模块601、确定模块602、合并模块603和第一显示模块604。

第一获取模块601,用于获取待显示的目标列表的最小宽度和目标列表中多个列项分别对应的属性信息,最小宽度为目标列表完整显示时所需要占用的最小宽度;

确定模块602,用于确定当前显示区域的宽度;

合并模块603,用于当最小宽度大于当前显示区域的宽度时,基于获取得到的多个属性信息,对多个列项中的至少两个列项进行合并;

第一显示模块604,用于显示列项合并之后的目标列表,列项合并之后的目标列表中的合并列包括至少两个列项的内容,且合并列的列名与至少两个列项的列名不相同。

可选地,参见图6b,合并模块603包括:

第一确定单元6031,用于如果多个属性信息中存在包括合并组序号的属性信息,则将合并组序号相同的属性信息对应的列项组成一个合并组,以得到m个合并组,m为大于或等于1的正整数;

第二确定单元6032,用于确定目标列表的第一实际宽度,第一实际宽度是指将m个合并组中的列项全部合并之后目标列表的实际宽度;

第一合并单元6033,用于如果目标列表的第一实际宽度小于当前显示区域的宽度,则对m个合并组中的至少一个合并组中的列项进行合并;

第二合并单元6034,用于如果目标列表的第一实际宽度大于当前显示区域的宽度,则从多个列项中除了m个合并组之外剩余的列项中选择至少两个列项,并将m个合并组中的列项以及选择的至少两个列项分别进行合并。

可选地,第一合并单元6033包括:

排序子单元,用于按照m个合并组分别对应的合并组序号对m个合并组进行排序,得到第一排序结果;

第一合并子单元,用于令i=1,对第一排序结果中的第i个合并组中的列项进行合并,并确定目标列表的第二实际宽度,第二实际宽度是指将第i个合并组中的列项进行合并之后目标列表的实际宽度,i为大于或等于1且小于或等于m的正整数;

第一合并子单元还用于当目标列表的第二实际宽度大于当前显示区域的宽度时,令i=i+1,返回对第一排序结果中的第i个合并组中的列项进行合并的步骤,直至目标列表的第二实际宽度小于或等于当前显示区域的宽度为止。

可选地,确定第一合并子单元用于:

获取第i个合并组中每个列项对应的列项宽度比例以及第i个合并组对应的合并列宽度比例;

确定第一宽度和第二宽度,第一宽度是指第i个合并组中每个列项对应的列项宽度比例与最小宽度之间的乘积之和,第二宽度是指第i个合并组对应的合并列宽度比例与最小宽度之间的乘积,;

确定第一宽度与第二宽度之间的第一宽度差值,并将最小宽度减去第一宽度差值以及第i个合并组之前的(i-1)个合并组分别对应的宽度差值,得到目标列表的第二实际宽度。

可选地,第二合并单元6034包括:

确定子单元,用于令k=2,确定目标列表的第三实际宽度,第三实际宽度是指将m个合并组中的列项全部合并以及将剩余的列项中倒数k个列项进行合并之后目标列表的实际宽度,k为大于或等于2的正整数;

确定子单元还用于如果目标列表的第三实际宽度大于当前显示区域的宽度,则令k=k+1,返回确定目标列表的第三实际宽度的步骤,直至目标列表的第三实际宽度小于或等于当前显示区域的宽度为止时,将剩余的列项中倒数k个列项确定为选择的至少两个列项。

可选地,将第二合并单元6034包括:

第二合并子单元,用于将m个合并组中的列项分别进行合并,得到m个合并列;

第三合并子单元,用于按照选择的至少两个列项的顺序,将每n个列项合并成一个合并列。

可选地,第一显示模块604包括:

第一显示单元,用于当合并为一个合并列的至少两个列项对应的至少两个属性信息中包括合并列列名时,将合并列列名作为由至少两个列项合并得到的合并列的列名进行显示;

第二显示单元,用于当合并为一个合并列的至少两个列项对应的至少两个属性信息中不包括合并列列名时,将由至少两个列项合并得到的合并列的列名设置为预设列名,并按照预设列名显示合并列;

第三显示单元,用于在合并列中显示至少两个列项的内容。

可选地,参见图6c,该装置600还包括:

第二获取模块605,用于当最小宽度小于当前显示区域的宽度时,获取多个列项中每个列项的列项宽度比例;

计算模块606,用于将多个列项中每个列项的列项宽度比例与当前显示区域的宽度相乘,得到每个列项的列宽;

第二显示模块607,用于基于每个列项的列宽显示目标列表。

可选地,参见图6d,该装置600还包括:

生成模块608,用于对于目标列表包括的r个合并列中的每个合并列,基于合并列生成合并列属性信息,合并列属性信息包括拆分属性、合并列对应的合并组序号、合并列宽度比例和合并列中每个列项对应的列项宽度比例,r为大于或等于1的正整数;

第二确定模块609,用于确定合并之后的目标列表的第四实际宽度,第四实际宽度是列项合并之后进行显示时目标列表的实际宽度;

拆分模块610,用于当检测到当前显示区域的宽度大于第四实际宽度时,基于当前显示区域的宽度和第四实际宽度,对r个合并列中的至少一个合并列进行拆分。

可选地,拆分模块610包括:

排序单元,用于按照r个合并列对应的合并组序号对r个合并列进行排序,得到第二排序结果;

第二确定单元,用于令j=1,确定第三宽度和目标列表的第五实际宽度,第三宽度是指第二排序结果中倒数第j个合并列的每个列项对应的列项宽度比例与第五实际宽度的乘积之和,第五实际宽度是指将第二排序结果中倒数j-1个合并列进行拆分之后目标列表的实际宽度,且在j=1时,第五实际宽度与第四实际宽度相等;

拆分单元,用于当当前显示区域的宽度与第五实际宽度之间的差值大于第三宽度时,基于倒数第j个合并列中每个列项对应的列项宽度比例,将倒数第j个合并列进行拆分,令j=j+1,返回确定第三宽度的步骤,直至当前显示区域的宽度小于或等于目标列表的第五实际宽度,或直至当前显示区域的宽度与目标列表的第五实际宽度之间的差值小于第三宽度为止。

综上所述,在本发明实施例中,当最小宽度大于当前显示区域的宽度时,终端可以从该目标列表的多个属性信息中确定包括的m个合并组,之后,终端可以确定当对该m个合并组全部进行合并之后该目标列表的第一实际宽度,如果将第一实际宽度小于当前显示区域的宽度,则可以确定只对该m个合并组中的至少一个合并组进行合并即可,如果第一实际宽度大于当前显示区域的宽度,则可以直接确定m个合并组将全部被合并,此时,只需要从除了m个合并组的列项之外的剩余列项中选至少两个列项,并将选择的至少两个列项和m个合并组分别合并,即可以保证该目标列表能够完整的显示在当前显示区域中,相较于相关技术中列表的布局方式更加灵活,即使对于不同的终端,该目标列表也可以保证完整的进行显示。

需要说明的是:上述实施例提供的列表显示装置在进行列表显示时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的列表显示装置与列表显示方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。

图7是本发明实施例提供的另一种列表显示装置700的框图。例如,装置700可以被提供为一服务器或一终端。参照图7,装置700包括处理器701、通信接口702、存储器703和通信总线704。

如图7所示,处理器701,通信接口702和存储器703通过通信总线704完成相互间的通信。

处理器701可以是一个cpu(centralprocessingunit,中央处理器),微处理器,asic(application-specificintegratedcircuit,特定应用集成电路),或一个或多个用于控制本申请方案程序执行的集成电路。

通信总线704可包括一通路,在上述组件之间传送信息。

存储器703可以是rom(read-onlymemory,只读存储器)或可存储静态信息和指令的其它类型的静态存储设备,ram(randomaccessmemory,随机存取存储器)或者可存储信息和指令的其它类型的动态存储设备,也可以是eeprom(electricallyerasableprogrammableread-onlymemory,电可擦可编程只读存储器)、cd-rom(compactdiscread-onlymemory,只读光盘)或其它光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其它磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其它介质,但不限于此。存储器703可以是独立存在,通过通信总线704与处理器701相连接。存储器703也可以和处理器701集成在一起。

通信接口702,使用任何收发器一类的装置,用于与其它设备或通信网络通信,如以太网,无线接入网,wlan(wirelesslocalareanetworks,无线局域网)等。

其中,存储器703用于存储执行本申请方案的计算机程序,并由处理器701来控制执行。也即,处理器701用于执行存储器上所存放的程序,以实现图1-5所示实施例提供的列表显示方法。

在示例性实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质内存储有计算机程序,当该计算机可读存储介质中存储的计算机程序由服务器的处理器执行时,使得服务器能够执行图1-5所示实施例提供的列表显示方法。

本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。

以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1