CN108519844B - 菜单显示方法和装置、存储介质、处理器及终端 - Google Patents
菜单显示方法和装置、存储介质、处理器及终端 Download PDFInfo
- Publication number
- CN108519844B CN108519844B CN201810346256.6A CN201810346256A CN108519844B CN 108519844 B CN108519844 B CN 108519844B CN 201810346256 A CN201810346256 A CN 201810346256A CN 108519844 B CN108519844 B CN 108519844B
- Authority
- CN
- China
- Prior art keywords
- menu
- width
- content
- list
- menu list
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0481—Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
- G06F3/0482—Interaction with lists of selectable items, e.g. menus
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0484—Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
- G06F3/04847—Interaction techniques to control parameter settings, e.g. interaction with sliders or dials
-
- 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)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Human Computer Interaction (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- User Interface Of Digital Computer (AREA)
Abstract
本发明公开了一种菜单显示方法和装置、存储介质、处理器及终端。其中,该方法包括:根据接收到的菜单显示请求获取菜单内容;将菜单内容添加到第一菜单列表中;根据已添加至第一菜单列表的菜单内容的第一宽度调整第一菜单列表的第二宽度,得到第二菜单列表;显示第二菜单列表。本发明解决了相关技术中的菜单列表的宽度固定,导致部分菜单内容可能超出菜单可显示宽度的技术问题。
Description
技术领域
本发明涉及计算机领域,具体而言,涉及一种菜单显示方法和装置、存储介质、处理器及终端。
背景技术
菜单在各种应用软件的应用比较广泛,例如即时通信应用中的好友列表,最近消息列表等。菜单显示操作一般通过鼠标右键唤起,显示在鼠标点击的绝对位置。当要显示的菜单内容较为丰富,则需要考虑一个屏幕有效显示高度是否能容纳菜单内容。
目前,相关技术在菜单显示前会统计菜单内容,并根据菜单弹起点,算出菜单底部和当前待显示屏幕的安全距离。若菜单底部超出屏幕底端,安全距离为负,则菜单会向上移动等于安全距离的绝对值高度。
上述菜单显示方法比较明显的缺陷有:
1.菜单最多移动到屏幕顶端,也就是当安全距离的绝对值大于鼠标弹起点与屏幕顶端距离时,意味着菜单内容过多,一个屏幕高度无法容纳此菜单内容,将会出现菜单显示不全的问题。
2.菜单处于屏幕边缘时,会出现部分内容遮挡。若不适当处理,将出现1级菜单或者2级菜单出现在屏幕外边,实际已经显示,但是用户感知不到,或者菜单在屏幕中显示一部分的问题。
3.菜单中子项内容不是一成不变的,内容有长有短,所以可能出现部分菜单内容超出菜单可显示宽度的问题。菜单列表的宽度固定,将会导致部分菜单内容可能超出菜单可显示宽度。
针对相关技术中的菜单列表的宽度固定,导致部分菜单内容可能超出菜单可显示宽度的问题,目前尚未提出有效的解决方案。
发明内容
本发明实施例提供了一种菜单显示方法和装置、存储介质、处理器及终端,以至少解决相关技术中的菜单列表的宽度固定,导致部分菜单内容可能超出菜单可显示宽度的技术问题。
根据本发明实施例的一个方面,提供了一种菜单显示方法,包括:根据接收到的菜单显示请求获取菜单内容;将所述菜单内容添加到第一菜单列表中;根据已添加至所述第一菜单列表的菜单内容的第一宽度调整所述第一菜单列表的第二宽度,得到第二菜单列表;显示所述第二菜单列表。
进一步地,所述根据已添加至所述第一菜单列表的菜单内容的第一宽度调整所述第一菜单列表的第二宽度,得到第二菜单列表包括:在所述第一宽度未超过所述第一菜单列表的预定宽度的情况下,将所述预定宽度作为所述第二宽度;在所述第一宽度超过所述预定宽度,且未超过菜单宽度上限值的情况下,将所述第一宽度作为所述第二宽度,所述预定宽度小于所述菜单宽度上限值;在所述第一宽度超过所述菜单宽度上限值的情况下,将所述菜单宽度上限值作为所述第二宽度。
进一步地,在所述第一宽度超过所述菜单宽度上限值的情况下,将所述菜单宽度上限值作为所述第二宽度的同时,所述方法还包括以下之一:截断所述菜单内容中超出所述菜单宽度上限值的部分;将所述菜单内容中超出所述菜单宽度上限值的部分移到所述第一菜单列表中的下一个菜单内容的位置进行显示;调整所述菜单内容所在行的高度,使得调整后的所述菜单内容所在行的高度为所述菜单内容中未超出所述菜单宽度上限值的第一部分内容所在行的高度与所述菜单内容中超出所述菜单宽度上限值的第二部分内容所在行的高度之和。
进一步地,在所述根据已添加至所述第一菜单列表的菜单内容的第一宽度调整所述第一菜单列表的第二宽度,得到第二菜单列表之后,所述方法还包括:获取所述第二菜单列表的高度,其中,所述第二菜单列表的高度为所述菜单内容的高度与所述第二菜单列表中所述菜单内容的个数的乘积;在所述第二菜单列表的高度超过所述第二菜单列表所在显示屏幕的高度的情况下,将所述第二菜单列表的高度调整为预定高度,得到第三菜单列表,其中,所述预定高度小于所述显示屏幕的高度;所述显示所述第二菜单列表包括:在所述显示屏幕中显示所述第三菜单列表,并显示菜单滚动显示标识,其中,所述菜单滚动显示标识用于指示滚动显示所述第三菜单列表中的菜单内容。
进一步地,所述在所述显示屏幕中显示所述第三菜单列表包括:在所述第三菜单列表的部分内容超出所述显示屏幕的边界的情况下,将所述第三菜单列表移动第一距离,其中,所述第一距离为所述第三菜单列表的部分内容超出所述显示屏幕的边界的距离。
进一步地,所述显示所述第二菜单列表包括:在当前存在一个显示屏幕,且所述第二菜单列表的部分内容超出所述显示屏幕的边界的情况下,将所述第二菜单列表移动第二距离,其中,所述第二距离为所述第二菜单列表的部分内容超出所述显示屏幕的边界的距离;在当前存在多个显示屏幕,且所述第二菜单列表的第三部分内容位于第一显示屏幕,所述第二菜单列表的第四部分内容位于第二显示屏幕时,在所述第一显示屏幕中显示所述第三部分内容,在所述第二显示屏幕中显示所述第四部分内容,其中,所述多个显示屏幕至少包括所述第一显示屏幕和所述第二显示屏幕,所述第二菜单列表包括所述第三部分内容和所述第四部分内容。
根据本发明实施例的另一方面,还提供了一种菜单显示装置,包括:第一获取单元,用于根据接收到的菜单显示请求获取菜单内容;添加单元,用于将所述菜单内容添加到第一菜单列表中;第一调整单元,用于根据已添加至所述第一菜单列表的菜单内容的第一宽度调整所述第一菜单列表的第二宽度,得到第二菜单列表;显示单元,用于显示所述第二菜单列表。
进一步地,所述第一调整单元包括:第一调整模块,用于在所述第一宽度未超过所述第一菜单列表的预定宽度的情况下,将所述预定宽度作为所述第二宽度;第二调整模块,用于在所述第一宽度超过所述预定宽度,且未超过菜单宽度上限值的情况下,将所述第一宽度作为所述第二宽度,所述预定宽度小于所述菜单宽度上限值;第三调整模块,用于在所述第一宽度超过所述菜单宽度上限值的情况下,将所述菜单宽度上限值作为所述第二宽度。
进一步地,所述第三调整模块还用于执行以下步骤之一:截断所述菜单内容中超出所述菜单宽度上限值的部分;将所述菜单内容中超出所述菜单宽度上限值的部分移到所述第一菜单列表中的下一个菜单内容的位置进行显示;调整所述菜单内容所在行的高度,使得调整后的所述菜单内容所在行的高度为所述菜单内容中未超出所述菜单宽度上限值的第一部分内容所在行的高度与所述菜单内容中超出所述菜单宽度上限值的第二部分内容所在行的高度之和。
进一步地,所述装置还包括:第二获取单元,用于在所述根据已添加至所述第一菜单列表的菜单内容的第一宽度调整所述第一菜单列表的第二宽度,得到第二菜单列表之后,获取所述第二菜单列表的高度,其中,所述第二菜单列表的高度为所述菜单内容的高度与所述第二菜单列表中所述菜单内容的个数的乘积;第二调整单元,用于在所述第二菜单列表的高度超过所述第二菜单列表所在显示屏幕的高度的情况下,将所述第二菜单列表的高度调整为预定高度,得到第三菜单列表,其中,所述预定高度小于所述显示屏幕的高度;所述显示单元包括:第一显示模块,用于在所述显示屏幕中显示所述第三菜单列表,并显示菜单滚动显示标识,其中,所述菜单滚动显示标识用于指示滚动显示所述第三菜单列表中的菜单内容。
进一步地,所述第一显示模块包括:移动子模块,用于在所述第三菜单列表的部分内容超出所述显示屏幕的边界的情况下,将所述第三菜单列表移动第一距离,其中,所述第一距离为所述第三菜单列表的部分内容超出所述显示屏幕的边界的距离。
进一步地,所述显示单元包括:移动模块,用于在当前存在一个显示屏幕,且所述第二菜单列表的部分内容超出所述显示屏幕的边界的情况下,将所述第二菜单列表移动第二距离,其中,所述第二距离为所述第二菜单列表的部分内容超出所述显示屏幕的边界的距离;第二显示模块,用于在当前存在多个显示屏幕,且所述第二菜单列表的第三部分内容位于第一显示屏幕,所述第二菜单列表的第四部分内容位于第二显示屏幕时,在所述第一显示屏幕中显示所述第三部分内容,在所述第二显示屏幕中显示所述第四部分内容,其中,所述多个显示屏幕至少包括所述第一显示屏幕和所述第二显示屏幕,所述第二菜单列表包括所述第三部分内容和所述第四部分内容。
根据本发明实施例的另一方面,还提供了一种存储介质,所述存储介质包括存储的程序,其中,所述程序运行时执行上述任一项所述的菜单显示方法。
根据本发明实施例的另一方面,还提供了一种处理器,所述处理器用于运行程序,其中,所述程序运行时执行上述任一项所述的菜单显示方法。
根据本发明实施例的另一方面,还提供了一种终端,包括存储器和处理器,其中,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行上述任一项所述的菜单显示方法。
在本发明实施例中,根据接收到的菜单显示请求获取菜单内容;将菜单内容添加到第一菜单列表中;根据已添加至第一菜单列表的菜单内容的第一宽度调整第一菜单列表的第二宽度,得到第二菜单列表;显示第二菜单列表,达到了根据菜单内容自动调整菜单列表的宽度的目的,进而解决了相关技术中的菜单列表的宽度固定,导致部分菜单内容可能超出菜单可显示宽度的技术问题,从而实现了避免菜单内容显示不全的技术效果。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是根据本发明实施例的菜单显示方法的硬件环境的示意图;
图2是根据本发明实施例的菜单显示方法的流程图;
图3是根据本发明优选实施例的菜单适配屏幕显示的流程图;以及
图4是根据本发明实施例的菜单显示装置的示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
根据本发明实施例,提供了一种菜单显示方法的方法实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
可选地,在本实施例中,上述菜单显示方法可以应用于如图1所示的由服务器102和终端104所构成的硬件环境中。如图1所示,服务器102通过网络与终端104进行连接,上述网络包括但不限于:广域网、城域网或局域网,终端104并不限定于PC、手机、平板电脑等。本发明实施例的菜单显示方法可以由终端104来执行,其中,终端104执行本发明实施例的菜单显示方法也可以是由安装在其上的客户端来执行。
可选地,终端104或者客户端执行本发明实施例的菜单显示方法的过程可以描述为:终端104或者客户端根据接收到的菜单显示请求获取菜单内容;终端104或者客户端将菜单内容添加到第一菜单列表中;终端104或者客户端根据已添加至第一菜单列表的菜单内容的第一宽度调整第一菜单列表的第二宽度,得到第二菜单列表;终端104或者客户端显示第二菜单列表。
下面以客户端为执行主体为例对本发明实施例的菜单显示方法进行详细说明。
图2是根据本发明实施例的菜单显示方法的流程图,如图2所示,该方法包括如下步骤:
步骤S102,根据接收到的菜单显示请求获取菜单内容;
步骤S104,将菜单内容添加到第一菜单列表中;
步骤S106,根据已添加至第一菜单列表的菜单内容的第一宽度调整第一菜单列表的第二宽度,得到第二菜单列表;
步骤S108,显示第二菜单列表。
通过上述步骤,根据接收到的菜单显示请求获取菜单内容;将菜单内容添加到第一菜单列表中;根据已添加至第一菜单列表的菜单内容的第一宽度调整第一菜单列表的第二宽度,得到第二菜单列表;显示第二菜单列表,达到了根据菜单内容自动调整菜单列表的宽度的目的,进而解决了相关技术中的菜单列表的宽度固定,导致部分菜单内容可能超出菜单可显示宽度的技术问题,从而实现了避免菜单内容显示不全的技术效果。
在步骤S102提供的方案中,菜单显示请求可以用于请求显示菜单,其中,所请求的菜单可以根据不同的应用场景需求设定或者调整,此处对所请求的菜单类型或者菜单内容不做具体限定。菜单显示请求可以由用户所执行的触控操作触发生成,其中,用户所执行的触控操作可以包括但并不限于点击、长按、滑动、手势等,例如在即时通信客户端中,用户通过鼠标右键点击某个成员,请求显示该成员数据对应的菜单列表。
可选地,菜单显示请求中可以携带有以下信息:所请求的菜单的标识信息,所请求的菜单的显示位置信息等。
可选地,在获取到菜单显示请求之后,客户端可以获取与该菜单显示请求相对应的菜单内容,例如,如果用户在电脑桌满上鼠标右键,菜单显示请求所请求的菜单内容可以包括“查看”、“排列方式”、“刷新”等内容。
在步骤S104提供的方案中,在根据接收到的菜单显示请求获取到相应的菜单内容之后,客户端可以将获取到的菜单内容添加到第一菜单列表中,其中,第一菜单列表可以为上述获取到的菜单内容以列表展示形式进行展示后得到的菜单列表。此处需要说明的是,在客户端中并不会真正显示第一菜单列表。
可选地,在将获取到的菜单内容添加至第一菜单列表中时,可以采用一个菜单内容占用列表中的一行的方式,也即第一菜单列表中的一行用于存储一个菜单内容。
此处需要说明的是,与菜单显示请求对应的菜单内容可以包括一个或者多个内容,当菜单内容包括多个内容时,第一菜单列表对应有多行,每行对应存储一个内容。
在步骤S106提供的方案中,第一菜单列表中每行对应的菜单内容的宽度可以相同,也可以不同。为了保证第一菜单列表中每行对应的菜单内容均可以显示完全,本发明实施例需要根据已添加至第一菜单列表的菜单内容的宽度调整第一菜单列表的宽度,其中,已添加至第一菜单列表的菜单内容的宽度可以为第一宽度,第一菜单列表的宽度可以为第二宽度,也就是说,本发明实施例可以根据第一宽度调整第二宽度,以实现保证第一菜单列表中的所有的菜单内容显示完全的目的。此处需要说明的是,第一菜单列表可以为矩形,第一菜单列表的宽度即为矩形宽度。
可选地,步骤S106根据已添加至第一菜单列表的菜单内容的第一宽度调整第一菜单列表的第二宽度,得到第二菜单列表可以包括以下几种情况:
在第一宽度未超过第一菜单列表的预定宽度的情况下,将预定宽度作为第二宽度;
在第一宽度超过预定宽度,且未超过菜单宽度上限值的情况下,将第一宽度作为第二宽度,预定宽度小于菜单宽度上限值;
在第一宽度超过菜单宽度上限值的情况下,将菜单宽度上限值作为第二宽度。
需要说明的是,根据实际需求可以预先设定第一菜单列表的预定宽度、菜单宽度上限值以及菜单宽度下限值,其中,预定宽度大于菜单宽度下限值,小于菜单宽度上限值。
可选地,在第一宽度超过菜单宽度上限值的情况下,在将菜单宽度上限值作为第二宽度的同时,本发明实施例还可以包括以下之一:截断菜单内容中超出菜单宽度上限值的部分;将菜单内容中超出菜单宽度上限值的部分移到第一菜单列表中的下一个菜单内容的位置进行显示;调整菜单内容所在行的高度,使得调整后的菜单内容所在行的高度为菜单内容中未超出菜单宽度上限值的第一部分内容所在行的高度与菜单内容中超出菜单宽度上限值的第二部分内容所在行的高度之和。
本发明实施例可以根据菜单内容的第一宽度的大小调整第一菜单列表的宽度,并且在菜单内容的第一宽度超过菜单宽度上限值的情况下,通过上述方法可以避免菜单内容显示不全,进而达到了提高用户使用体验的目的。
在步骤S108提供的方案中,在根据菜单内容的第一宽度调整第一菜单列表的第二宽度之后,可以得到第二菜单列表,此时客户端可以显示该第二菜单列表,以实现客户端所显示的第二菜单列表为根据菜单内容的宽度进行调整的菜单列表。
可选地,步骤S108显示第二菜单列表可以包括:在当前存在一个显示屏幕,且第二菜单列表的部分内容超出显示屏幕的边界的情况下,将第二菜单列表移动第二距离,其中,第二距离为第二菜单列表的部分内容超出显示屏幕的边界的距离;在当前存在多个显示屏幕,且第二菜单列表的第三部分内容位于第一显示屏幕,第二菜单列表的第四部分内容位于第二显示屏幕时,在第一显示屏幕中显示第三部分内容,在第二显示屏幕中显示第四部分内容,其中,多个显示屏幕至少包括第一显示屏幕和第二显示屏幕,第二菜单列表包括第三部分内容和第四部分内容。
在本发明实施例中,若第二菜单列表的菜单内容超出显示屏幕或者菜单内容显示跨屏幕,可以通过计算第二菜单列表与显示屏幕的位置关系,移动第二菜单列表至可显示的位置,以保证第二菜单列表的菜单内容显示完全。
可选地,在根据已添加至第一菜单列表的菜单内容的第一宽度调整第一菜单列表的第二宽度,得到第二菜单列表之后,本发明实施例还可以调整第二菜单列表的高度,以适应显示屏幕的高度,具体可以包括:获取第二菜单列表的高度,其中,第二菜单列表的高度为菜单内容的高度与第二菜单列表中菜单内容的个数的乘积;在第二菜单列表的高度超过第二菜单列表所在显示屏幕的高度的情况下,将第二菜单列表的高度调整为预定高度,得到第三菜单列表,其中,预定高度小于显示屏幕的高度。可选地,在调整第二菜单列表的高度得到第三显示列表之后,本发明实施例可以在显示屏幕中显示第三菜单列表,并显示菜单滚动显示标识,其中,菜单滚动显示标识用于指示滚动显示第三菜单列表中的菜单内容。
需要说明的是,预定高度可以根据实际需求设定或调整,此处不做具体限定。还需要说明打呢是,菜单滚动显示标识可以是滚动条,通过拖动滚动条可以实现滚动显示第三菜单列表的菜单内容。
可选地,在显示屏幕中显示第三菜单列表可以包括:在第三菜单列表的部分内容超出显示屏幕的边界的情况下,将第三菜单列表移动第一距离,其中,第一距离为第三菜单列表的部分内容超出显示屏幕的边界的距离。
本发明实施例在第三菜单列表的菜单内容超出显示屏幕高度的情况下,通过在菜单列表内显示滚动条,可以通过拖动滚动条的方式改变菜单的可显示区域,进而选中原本被遮挡不可见的菜单内容,进而达到避免菜单内容显示不完全的目的。
本发明还提供了一种优选实施例,该优选实施例提供了一种适应屏幕的菜单方法。该方法可以解决以下问题:若菜单内容超出屏幕高度,菜单内显示滚动条,可通过滚动鼠标的方式改变菜单的可显示区域,进而选择原本被遮挡不可见部分;若菜单显示位置跨屏幕(多屏幕适配)或者超出屏幕位置时,通过计算菜单显示区域与屏幕之间的关系,移动菜单到可显示的位置;若菜单内容显示在规定的最小值和最大值之间,改变菜单的固定宽度适应菜单内容。
该方法可以在创建菜单时首先计算鼠标右键相对屏幕的位置,依靠准备好要显示的菜单内容数据,填充菜单UI(User Interface,用户界面)子元素。UI子元素填充完毕后,根据UI估算出菜单子元素的宽度、高度。其中菜单高度=菜单UI子元素高度×菜单UI子元素的个数。估算完毕后,依据菜单的宽度和高度及显示的起点,计算其显示区域是否在屏幕的显示区域内,若在可直接显示,不在屏幕的显示区域时,需要适当调整菜单的位置甚至压缩菜单的可显示区域。
菜单适配屏幕显示的流程可以如图3所示,其详细步骤可以包括:
步骤S301,获取鼠标右键位置。右键鼠标弹起,计算当前鼠标的坐标basePoint,此时获得的坐标为点相对父窗口的坐标。
步骤S302,计算与屏幕相对位置。将步骤S301中获得的坐标basePoint转换为相对屏幕坐标系的坐标basePointScreen。
步骤S303,计算菜单所在屏幕。依据步骤S302中点的坐标basePointScreen,获得该点在哪个屏幕中。首先计算当前客户端所使用的电脑有几个屏幕显示器,如果有一个则直接在当前屏幕,获得当前屏幕的可显示区域curWorkArea。如果有多个屏幕,依次遍历找到该点所在的屏幕,记录屏幕显示区域curWorkArea。
步骤S304,获取菜单显示内容。获取将要在屏幕中显示的菜单内容,将菜单内容添加到列表中。
步骤S305,计算菜单显示面积。遍历步骤S304中菜单列表,计算菜单的显示宽度。有的菜单内容不一样长短。故规定有菜单的横向宽度最大值widthMax,最小值widthMin,固定值width。若每个菜单UI子元素的宽度eleWidth均在显示范围内,则菜单固定宽度保持不变。若其中UI子元素最大宽度eleWidthMax超过固定值width,小于规定的最大值widthMax,菜单固定宽度width调整为UI子元素中最大宽度eleWidthMax,否则截断显示超出widthMax的UI子元素。
遍历步骤S304中菜单列表,计算菜单的显示高度menuHeight,即菜单UI子元素高度eleHeight×菜单列表中UI子元素个数n。
步骤S306,判断菜单高度是否超出屏幕高度。将menuHeight与curWorkArea.Height进行比较,若前者大于后者,则执行步骤S307,压缩菜单显示到默认的菜单显示高度。此时菜单将显示滚动条,通过鼠标滚动或鼠标拖动滚动条以显示更多菜单UI子元素。否则执行步骤S308。
步骤S308,判断菜单是否横向显示在屏幕中。若菜单未横向显示在屏幕中,则执行步骤S309矫正横坐标,具体矫正方式可以为:依据width和basePointScreen.x(横坐标起点),计算菜单右边是否在当前屏幕显示区域,如果不在,若当前只有一个屏幕,计算菜单横向超出部分left值,此时basePointScreen.x=basePointScreen.x-left。若当前有多个屏幕,计算菜单右边是否在另一个屏幕中显示,若是,则继续显示,否则同上basePointScreen.x=basePointScreen.x-left。如果当前菜单在屏幕显示区域,则继续。另外需要注意的是如果1级菜单横向坐标在屏幕显示区域,而2级子菜单不在,则2级子菜单平移值move=1级子菜单width+2级子菜单width。若菜单横向显示在屏幕中,则执行步骤S310。
步骤S310,判断菜单垂直方向底部是否超出显示屏幕底部。若超出显示屏幕底部,则执行步骤S311压缩菜单显示到默认值高度。依据basePointScreen.y和menuHeight,计算当前菜单底部(bottom)是否超出curWorkArea.bottom,若超出距离为absY,则basePointScreen.y=basePointScreen.y-absY。其中absY为菜单垂直超出部分绝对值。若未超出显示屏幕底部,则执行步骤S312。
步骤S312,显示菜单。依据最新的basePointScreen和menuHeight、menuWidth显示菜单在屏幕当前屏幕中。
本发明解决菜单在各种特殊条件下自适应屏幕显示的问题,包括根据菜单内容调整菜单显示宽度,菜单垂直高度自适应屏幕,菜单横向位置自适应屏幕(包括多屏幕和高清屏)。提升了菜单的用户体验。
根据本发明实施例,还提供了一种菜单显示装置的装置实施例,需要说明的是,该菜单显示装置可以用于执行本发明实施例中的菜单显示方法,也即本发明实施例中的菜单显示方法可以在该菜单显示装置中执行。
图4是根据本发明实施例的菜单显示装置的示意图,如图4所示,该装置可以包括:
第一获取单元42,用于根据接收到的菜单显示请求获取菜单内容;添加单元44,用于将菜单内容添加到第一菜单列表中;第一调整单元46,用于根据已添加至第一菜单列表的菜单内容的第一宽度调整第一菜单列表的第二宽度,得到第二菜单列表;显示单元48,用于显示第二菜单列表。
需要说明的是,该实施例中的第一获取单元42可以用于执行本发明实施例中的步骤S102,该实施例中的添加单元44可以用于执行本发明实施例中的步骤S104,该实施例中的第一调整单元46可以用于执行本发明实施例中的步骤S106,该实施例中的显示单元48可以用于执行本发明实施例中的步骤S108。上述模块与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例所公开的内容。
可选地,第一调整单元46可以包括:第一调整模块,用于在第一宽度未超过第一菜单列表的预定宽度的情况下,将预定宽度作为第二宽度;第二调整模块,用于在第一宽度超过预定宽度,且未超过菜单宽度上限值的情况下,将第一宽度作为第二宽度,预定宽度小于菜单宽度上限值;第三调整模块,用于在第一宽度超过菜单宽度上限值的情况下,将菜单宽度上限值作为第二宽度。
可选地,第三调整模块还可以用于执行以下步骤之一:截断菜单内容中超出菜单宽度上限值的部分;将菜单内容中超出菜单宽度上限值的部分移到第一菜单列表中的下一个菜单内容的位置进行显示;调整菜单内容所在行的高度,使得调整后的菜单内容所在行的高度为菜单内容中未超出菜单宽度上限值的第一部分内容所在行的高度与菜单内容中超出菜单宽度上限值的第二部分内容所在行的高度之和。
可选地,该菜单显示装置还可以包括:第二获取单元,用于在根据已添加至第一菜单列表的菜单内容的第一宽度调整第一菜单列表的第二宽度,得到第二菜单列表之后,获取第二菜单列表的高度,其中,第二菜单列表的高度为菜单内容的高度与第二菜单列表中菜单内容的个数的乘积;第二调整单元,用于在第二菜单列表的高度超过第二菜单列表所在显示屏幕的高度的情况下,将第二菜单列表的高度调整为预定高度,得到第三菜单列表,其中,预定高度小于显示屏幕的高度;显示单元48可以包括:第一显示模块,用于在显示屏幕中显示第三菜单列表,并显示菜单滚动显示标识,其中,菜单滚动显示标识用于指示滚动显示第三菜单列表中的菜单内容。
可选地,第一显示模块可以包括:移动子模块,用于在第三菜单列表的部分内容超出显示屏幕的边界的情况下,将第三菜单列表移动第一距离,其中,第一距离为第三菜单列表的部分内容超出显示屏幕的边界的距离。
可选地,显示单元48可以包括:移动模块,用于在当前存在一个显示屏幕,且第二菜单列表的部分内容超出显示屏幕的边界的情况下,将第二菜单列表移动第二距离,其中,第二距离为第二菜单列表的部分内容超出显示屏幕的边界的距离;第二显示模块,用于在当前存在多个显示屏幕,且第二菜单列表的第三部分内容位于第一显示屏幕,第二菜单列表的第四部分内容位于第二显示屏幕时,在第一显示屏幕中显示第三部分内容,在第二显示屏幕中显示第四部分内容,其中,多个显示屏幕至少包括第一显示屏幕和第二显示屏幕,第二菜单列表包括第三部分内容和第四部分内容。
通过上述菜单显示装置,可以实现根据菜单内容自动调整菜单列表的宽度的目的,进而解决了相关技术中的菜单列表的宽度固定,导致部分菜单内容可能超出菜单可显示宽度的技术问题,从而实现了避免菜单内容显示不全的技术效果。
为了实现上述目的,根据本发明的另一方面,本发明实施例还提供了一种存储介质,所述存储介质包括存储的程序,其中,在所述程序运行时控制所述存储介质所在设备执行上述所述的菜单显示方法。
为了实现上述目的,根据本发明的另一方面,本发明实施例还提供了一种处理器,所述处理器用于运行程序,其中,所述程序运行时执行上述所述的菜单显示方法。
为了实现上述目的,根据本发明的另一方面,本发明实施例还提供了一种终端,包括存储器和处理器,其中,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行上述所述的菜单显示方法。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,可以为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (15)
1.一种菜单显示方法,其特征在于,包括:
根据接收到的菜单显示请求获取菜单内容;
将所述菜单内容添加到第一菜单列表中;
根据已添加至所述第一菜单列表的菜单内容的第一宽度调整所述第一菜单列表的第二宽度,得到第二菜单列表;
显示所述第二菜单列表;
所述显示所述第二菜单列表包括:在当前存在多个显示屏幕,且所述第二菜单列表的第三部分内容位于第一显示屏幕,所述第二菜单列表的第四部分内容位于第二显示屏幕时,在所述第一显示屏幕中显示所述第三部分内容,在所述第二显示屏幕中显示所述第四部分内容,其中,所述多个显示屏幕至少包括所述第一显示屏幕和所述第二显示屏幕,所述第二菜单列表包括所述第三部分内容和所述第四部分内容。
2.根据权利要求1所述的方法,其特征在于,所述根据已添加至所述第一菜单列表的菜单内容的第一宽度调整所述第一菜单列表的第二宽度,得到第二菜单列表包括:
在所述第一宽度未超过所述第一菜单列表的预定宽度的情况下,将所述预定宽度作为所述第二宽度;
在所述第一宽度超过所述预定宽度,且未超过菜单宽度上限值的情况下,将所述第一宽度作为所述第二宽度,所述预定宽度小于所述菜单宽度上限值;
在所述第一宽度超过所述菜单宽度上限值的情况下,将所述菜单宽度上限值作为所述第二宽度。
3.根据权利要求2所述的方法,其特征在于,在所述第一宽度超过所述菜单宽度上限值的情况下,将所述菜单宽度上限值作为所述第二宽度的同时,所述方法还包括以下之一:
截断所述菜单内容中超出所述菜单宽度上限值的部分;
将所述菜单内容中超出所述菜单宽度上限值的部分移到所述第一菜单列表中的下一个菜单内容的位置进行显示;
调整所述菜单内容所在行的高度,使得调整后的所述菜单内容所在行的高度为所述菜单内容中未超出所述菜单宽度上限值的第一部分内容所在行的高度与所述菜单内容中超出所述菜单宽度上限值的第二部分内容所在行的高度之和。
4.根据权利要求1所述的方法,其特征在于,
在所述根据已添加至所述第一菜单列表的菜单内容的第一宽度调整所述第一菜单列表的第二宽度,得到第二菜单列表之后,所述方法还包括:获取所述第二菜单列表的高度,其中,所述第二菜单列表的高度为所述菜单内容的高度与所述第二菜单列表中所述菜单内容的个数的乘积;在所述第二菜单列表的高度超过所述第二菜单列表所在显示屏幕的高度的情况下,将所述第二菜单列表的高度调整为预定高度,得到第三菜单列表,其中,所述预定高度小于所述显示屏幕的高度;
所述显示所述第二菜单列表包括:在所述显示屏幕中显示所述第三菜单列表,并显示菜单滚动显示标识,其中,所述菜单滚动显示标识用于指示滚动显示所述第三菜单列表中的菜单内容。
5.根据权利要求4所述的方法,其特征在于,所述在所述显示屏幕中显示所述第三菜单列表包括:
在所述第三菜单列表的部分内容超出所述显示屏幕的边界的情况下,将所述第三菜单列表移动第一距离,其中,所述第一距离为所述第三菜单列表的部分内容超出所述显示屏幕的边界的距离。
6.根据权利要求1所述的方法,其特征在于,所述显示所述第二菜单列表包括:
在当前存在一个显示屏幕,且所述第二菜单列表的部分内容超出所述显示屏幕的边界的情况下,将所述第二菜单列表移动第二距离,其中,所述第二距离为所述第二菜单列表的部分内容超出所述显示屏幕的边界的距离。
7.一种菜单显示装置,其特征在于,包括:
第一获取单元,用于根据接收到的菜单显示请求获取菜单内容;
添加单元,用于将所述菜单内容添加到第一菜单列表中;
第一调整单元,用于根据已添加至所述第一菜单列表的菜单内容的第一宽度调整所述第一菜单列表的第二宽度,得到第二菜单列表;
显示单元,用于显示所述第二菜单列表;
所述显示单元包括:第二显示模块,用于在当前存在多个显示屏幕,且所述第二菜单列表的第三部分内容位于第一显示屏幕,所述第二菜单列表的第四部分内容位于第二显示屏幕时,在所述第一显示屏幕中显示所述第三部分内容,在所述第二显示屏幕中显示所述第四部分内容,其中,所述多个显示屏幕至少包括所述第一显示屏幕和所述第二显示屏幕,所述第二菜单列表包括所述第三部分内容和所述第四部分内容。
8.根据权利要求7所述的装置,其特征在于,所述第一调整单元包括:
第一调整模块,用于在所述第一宽度未超过所述第一菜单列表的预定宽度的情况下,将所述预定宽度作为所述第二宽度;
第二调整模块,用于在所述第一宽度超过所述预定宽度,且未超过菜单宽度上限值的情况下,将所述第一宽度作为所述第二宽度,所述预定宽度小于所述菜单宽度上限值;
第三调整模块,用于在所述第一宽度超过所述菜单宽度上限值的情况下,将所述菜单宽度上限值作为所述第二宽度。
9.根据权利要求8所述的装置,其特征在于,所述第三调整模块还用于执行以下步骤之一:
截断所述菜单内容中超出所述菜单宽度上限值的部分;
将所述菜单内容中超出所述菜单宽度上限值的部分移到所述第一菜单列表中的下一个菜单内容的位置进行显示;
调整所述菜单内容所在行的高度,使得调整后的所述菜单内容所在行的高度为所述菜单内容中未超出所述菜单宽度上限值的第一部分内容所在行的高度与所述菜单内容中超出所述菜单宽度上限值的第二部分内容所在行的高度之和。
10.根据权利要求7所述的装置,其特征在于,
所述装置还包括:第二获取单元,用于在所述根据已添加至所述第一菜单列表的菜单内容的第一宽度调整所述第一菜单列表的第二宽度,得到第二菜单列表之后,获取所述第二菜单列表的高度,其中,所述第二菜单列表的高度为所述菜单内容的高度与所述第二菜单列表中所述菜单内容的个数的乘积;第二调整单元,用于在所述第二菜单列表的高度超过所述第二菜单列表所在显示屏幕的高度的情况下,将所述第二菜单列表的高度调整为预定高度,得到第三菜单列表,其中,所述预定高度小于所述显示屏幕的高度;
所述显示单元包括:第一显示模块,用于在所述显示屏幕中显示所述第三菜单列表,并显示菜单滚动显示标识,其中,所述菜单滚动显示标识用于指示滚动显示所述第三菜单列表中的菜单内容。
11.根据权利要求10所述的装置,其特征在于,所述第一显示模块包括:
移动子模块,用于在所述第三菜单列表的部分内容超出所述显示屏幕的边界的情况下,将所述第三菜单列表移动第一距离,其中,所述第一距离为所述第三菜单列表的部分内容超出所述显示屏幕的边界的距离。
12.根据权利要求7所述的装置,其特征在于,所述显示单元包括:
移动模块,用于在当前存在一个显示屏幕,且所述第二菜单列表的部分内容超出所述显示屏幕的边界的情况下,将所述第二菜单列表移动第二距离,其中,所述第二距离为所述第二菜单列表的部分内容超出所述显示屏幕的边界的距离。
13.一种存储介质,其特征在于,所述存储介质包括存储的程序,其中,在所述程序运行时控制所述存储介质所在设备执行权利要求1至7中任一项所述的方法。
14.一种处理器,其特征在于,所述处理器用于运行程序,其中,所述程序运行时执行权利要求1至6中任一项所述的方法。
15.一种终端,包括存储器和处理器,其特征在于,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行所述权利要求1至6中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810346256.6A CN108519844B (zh) | 2018-04-18 | 2018-04-18 | 菜单显示方法和装置、存储介质、处理器及终端 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810346256.6A CN108519844B (zh) | 2018-04-18 | 2018-04-18 | 菜单显示方法和装置、存储介质、处理器及终端 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108519844A CN108519844A (zh) | 2018-09-11 |
CN108519844B true CN108519844B (zh) | 2020-06-16 |
Family
ID=63428835
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810346256.6A Active CN108519844B (zh) | 2018-04-18 | 2018-04-18 | 菜单显示方法和装置、存储介质、处理器及终端 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108519844B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112306351B (zh) * | 2020-10-30 | 2022-05-13 | 腾讯科技(深圳)有限公司 | 虚拟按键的位置调整方法、装置、设备及存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103984476A (zh) * | 2014-05-06 | 2014-08-13 | 小米科技有限责任公司 | 菜单显示方法及装置 |
CN107301007A (zh) * | 2016-04-15 | 2017-10-27 | 平安科技(深圳)有限公司 | 功能菜单显示方法及系统 |
CN107390980A (zh) * | 2016-05-16 | 2017-11-24 | 中兴通讯股份有限公司 | 菜单显示方法及装置 |
CN107644039A (zh) * | 2016-07-21 | 2018-01-30 | 平安科技(深圳)有限公司 | 网页菜单调整方法及系统 |
CN107765955A (zh) * | 2016-08-15 | 2018-03-06 | 南京中兴软件有限责任公司 | 基于组件的下拉菜单显示方法、装置、组件及应用 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9536012B2 (en) * | 2011-12-05 | 2017-01-03 | Google Inc. | Presentation of the media content on mobile devices |
-
2018
- 2018-04-18 CN CN201810346256.6A patent/CN108519844B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103984476A (zh) * | 2014-05-06 | 2014-08-13 | 小米科技有限责任公司 | 菜单显示方法及装置 |
CN107301007A (zh) * | 2016-04-15 | 2017-10-27 | 平安科技(深圳)有限公司 | 功能菜单显示方法及系统 |
CN107390980A (zh) * | 2016-05-16 | 2017-11-24 | 中兴通讯股份有限公司 | 菜单显示方法及装置 |
CN107644039A (zh) * | 2016-07-21 | 2018-01-30 | 平安科技(深圳)有限公司 | 网页菜单调整方法及系统 |
CN107765955A (zh) * | 2016-08-15 | 2018-03-06 | 南京中兴软件有限责任公司 | 基于组件的下拉菜单显示方法、装置、组件及应用 |
Also Published As
Publication number | Publication date |
---|---|
CN108519844A (zh) | 2018-09-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5324411B2 (ja) | 広告配信装置、方法及びプログラム | |
CN109508213B (zh) | 一种视图渲染方法、装置、介质及智能终端 | |
US20140229886A1 (en) | Method for controlling system bar of user equipment, and user equipment | |
US11372528B2 (en) | User interface display method, device, and apparatus | |
EP2837992A1 (en) | User interface interaction method and apparatus applied in touchscreen device, and touchscreen device | |
US20130014042A1 (en) | Method and apparatus for adjusting size of a list item | |
EP2851773A1 (en) | Widget setting method and terminal device | |
US9639239B2 (en) | DockBar implementation method, device and system | |
CN106980510B (zh) | 一种播放器的视窗自适应方法及装置 | |
CN109375983B (zh) | 终端内输入法窗口自动调整的方法 | |
CN106156240B (zh) | 信息处理方法、信息处理装置及用户设备 | |
CN106886511B (zh) | 一种网络表格的处理方法及装置 | |
CN112783394A (zh) | 列表页面展示方法和装置 | |
CN108920037B (zh) | 一种房屋的虚拟三维空间的显示方法及装置 | |
JP5563703B2 (ja) | コンテンツ配信装置、コンテンツ配信方法、コンテンツ配信プログラム及び端末用プログラム | |
CN108519844B (zh) | 菜单显示方法和装置、存储介质、处理器及终端 | |
CN111124111A (zh) | 一种处理方法、电子设备 | |
CN106713962B (zh) | 视频展示方法、装置和终端设备 | |
JP6339550B2 (ja) | 端末用プログラム、端末装置及び端末制御方法 | |
CN106708495B (zh) | 一种基于移动终端的页面显示方法及装置 | |
CN107609433A (zh) | 隐私保护方法及电子设备 | |
CN108132716B (zh) | 浏览页的调整方法、设备及计算机可读存储介质 | |
CN113660516B (zh) | 视频显示方法、装置、设备及介质 | |
CN112748832B (zh) | 信息处理方法、装置及电子设备和存储介质 | |
CN113300940B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |