本技术涉及电子设备,尤其涉及一种重新加载显示界面的方法和电子设备。
背景技术:
1、在手机或平板电脑等电子设备开启自动旋转功能后,当发生旋转之后,需要重新加载显示界面,也就是将显示界面旋转到跟电子设备的旋转方向一致。
2、在传统的电子设备中,对于一个运行的应用而言,在一个时刻只会显示一个界面,当发生旋转,就会重新加载这个界面,并将这个界面按照旋转后的显示要求进行显示。但是随着技术的发展,出现了折叠屏电子设备,使得电子设备的可以呈现的屏幕变大了,所以即使同时显示多个界面也能满足用户的使用需求,不会因为界面的显示面积太小而看不清晰,也因此出现了一个应用在运行的时候能够同时打开并显示多个界面的情况,每个界面都可以进行交互。例如一个购物应用,可以同时打开首页和下一级界面两个界面,使得用户使用感受更好了。
3、但是这也带来了新的问题,在实际使用场景中,发现在电子设备同时显示一个运行应用的两个界面的场景下,在自动旋转功能开启的情况下,当发生了旋转之后,两个界面的显示角度虽然旋转到了跟电子设备的旋转方向一致,但是,两个界面中却有一个界面无法再进行交互操作,也就是说,点击其中一个界面中的任意控件,电子设备都无法进行响应。
4、因此在正在运行的应用同时显示多个界面的场景中,当旋转后重新加载显示界面的时候,如何避免出现失效界面的情况是亟待解决的技术问题。
技术实现思路
1、本技术提供一种重新加载显示界面的方法和电子设备,能够在正在运行的应用同时显示多个界面的场景中,当旋转后重新加载显示界面的时候,避免出现失效界面的情况,提升用户使用体验。
2、第一方面,提供了一种重新加载显示界面的方法,该方法包括:在电子设备的屏幕上同时显示正在运行的第一应用的第一界面和第二界面,第二界面是在第一界面中的第一控件的触发下显示的;当检测到电子设备被旋转后,启动重新加载显示界面的进程;在重新加载显示界面的进程中,根据旋转前的第一界面的活动区域和第二界面的活动区域组成的整体活动区域,确定目标活动区域;在重新加载显示界面的进程中,根据目标活动区域重新加载显示界面。
3、在本技术技术方案中,主要通过结合了旋转前的两个活动区域所组成的整体来确定目标活动区域,从而避免了其中某个活动区域被误当成需要填充的部分被填充后失效。
4、与传统方案不同的是,在本技术实施例中,确定的目标活动区域(即目标activity区域)是根据旋转前两个activity区域组成的整体活动区域确定的,从而避免了其中在先的activity区域被误判为letterbox模式下的需要填充的区域。从而避免了失效界面的产生。
5、在letterbox模式中,在填充的时候,会先确定出activity区域,然后再将这个确定出的activity区域居中显示,并且屏幕中除了activity区域之外的两侧的部分分别填充为letterbox-left和letterbox-right。在没有ae模式的时候,这种方式不会出现问题,因为在传统的非ae模式的显示场景中,每个时刻只有一个activity区域,如果启动了一个新的activity区域就会直接覆盖前一个activity区域,所以在letterbox模式中,读取到的activity区域的值就是旋转前的最后一个启动的activity区域的数值。但是ae模式诞生后,在ae模式下,在letterbox模式中,读取的还是最后一个启动的activity区域的数值,就导致了之前已经启动的activity区域被遗漏了,结合此处,就是读取的是第二界面的活动区域的数值,却遗漏了第一界面的活动区域,导致了重新加载显示界面之后第一界面的失效。
6、而在本技术实施例中,在letterbox模式中,在填充的时候,确定出的目标活动区域是根据旋转前整体活动区域来确定的,就避免了对于第一界面的活动区域的遗漏,也就避免了第一界面在旋转后失效的问题。
7、结合第一方面,在第一方面的某些实现方式中,在重新加载显示界面的进程中,根据旋转前的第一界面的活动区域和第二界面的活动区域组成的整体活动区域,确定目标活动区域时,可以包括:判断电子设备的显示模式是否为平行窗口ae模式;当判定显示模式为ae模式时,根据旋转前的整体活动区域,确定目标活动区域;或者,当判定显示模式不是ae模式时,根据旋转前第一应用的最后一个显示界面的活动区域,确定目标活动区域。
8、在这种实现方式中,增加了对于ae模式的判定,只有在ae模式下才会根据整体活动区域来确定目标活动区域,而对于非ae模式,则保留原有的确定方式,将最后一个显示界面的活动区域确定为目标活动区域,此处最后一个显示界面的活动区域即为第二界面的活动区域。
9、需要说明的是,虽然前面显示的步骤中已经表明了第一应用是同时显示了两个界面,有两个活动区域的,但是,在重新加载显示界面的进程启动后,对于这个进程而言,还是需要获取当前显示模式,并且判断当前显示模式是否为ae模式之后再决定选择哪一种方式来确定目标活动区域,或者理解为,再决定读取哪个区域变量的数值作为目标活动区域的对应数值。
10、结合第一方面,在第一方面的某些实现方式中,在重新加载显示界面的进程中,根据旋转前的第一界面的活动区域和第二界面的活动区域组成的整体活动区域,确定目标活动区域时,可以包括:判断电子设备的显示模式是否为多窗口显示模式;当判定显示模式为多窗口显示模式时,执行判断电子设备的显示模式是否为ae模式的步骤;或者,当判定显示模式不是多窗口显示模式时,根据旋转前第一应用在启动后的第一个显示界面的活动区域,确定目标活动区域。
11、需要说明的是,ae模式是多窗口显示模式中的一种显示模式,所以还可以在ae模式的判定之前再增加一层多窗口显示模式的判定,也就是说,先判断是不是多窗口显示模式,只有在是多窗口显示模式的前提下才会进一步进行ae模式的判定和目标活动区域的确定,而对于非多窗口显示模式(也就是单窗口显示模式)就没有必要再进行ae模式的判定了。这样的两个层级的判定可以使得对于ae模式的筛选结果更加准确,并且针对不同的模式来确定目标活动区域的结果也更加精细,在避免了失效界面的基础上还实现了更加精细的显示。
12、结合第一方面,在第一方面的某些实现方式中,上述方法还包括:检测第一应用是否包括预设显示区域;当第一应用包括预设显示区域时,在重新加载显示界面的进程中,根据预设显示区域重新加载显示界面;或者,当第一应用不包括预设显示区域时,在重新加载显示界面的进程中,执行根据整体活动区域确定目标活动区域以及根据目标活动区域重新加载显示界面的步骤。
13、对于一些应用,如果是支持自动匹配屏幕尺寸的情况下,在重新加载显示界面的时候,会有一个存储单元用来存储这个预设的数值的,也就是,支持自动匹配屏幕尺寸的应用是包括一个预设显示区域的,这种情况下就没有必要执行后续确定目标活动区域和根据目标活动区域来重新加载界面的步骤了,而是直接根据这个预设显示区域加载界面即可。因此,在这种实现方式中,增加了对于运行的应用是否包括预设显示区域的判定,如果有的话,就按照预设显示区域重新加载界面,如果没有的话,才会确定并基于目标活动区域重新加载界面。这样的方式,对于有预设显示区域的应用而言,能够简化执行步骤,但应理解,在没有这个判定的情况下,即使对于有预设显示区域的应用而言,即使执行了后续步骤,也不会带来不好影响,依然能够避免失效界面,这种实现方式只是筛选出了这部分没有执行后续步骤的必要的应用,从而实现更加精细的显示控制,以及简化这部分应用的执行步骤。
14、结合第一方面,在第一方面的某些实现方式中,在重新加载显示界面的进程中,根据旋转前的第一界面的活动区域和第二界面的活动区域组成的整体活动区域,确定目标活动区域时,可以包括:检测第一应用是否包括预设显示区域;当判定第一应用不包括预设显示区域时,判断电子设备的显示模式是否为多窗口显示模式;当判定显示模式为多窗口显示模式时,判断电子设备的显示模式是否为平行窗口ae模式;当判定显示模式为ae模式时,根据旋转前的整体活动区域,确定目标活动区域。
15、在这种实现方式中,三个判定都有,只有在不包括预设显示区域且显示模式是多窗口显示模式,且显示模式具体是ae模式的时候才会根据旋转前的整体活动区域来确定目标活动区域。相比于上述只有三个判定中的部分判定的情况,在避免了失效界面的前体现,对于显示进程的控制更加精细,且充分避免了本技术方案对于其他场景的影响。
16、在这种实现方式的一个例子中,上述方法还包括:当判定显示模式不是ae模式时,根据旋转前所述第一应用的最后一个显示界面的活动区域,确定所述目标活动区域。在这个例子中,对于非ae模式进行了兜底处理。
17、在这种实现方式的另一个例子中,上述方法还包括:当判定显示模式不是多窗口显示模式时,根据旋转前所述第一应用在启动后的第一个显示界面的活动区域,确定所述目标活动区域。在这个例子中,对于非多窗口显示模式进行了兜底处理。
18、在这种实现方式的又一个例子中,上述方法还包括:当所述第一应用包括预设显示区域时,在所述重新加载显示界面的进程中,根据所述预设显示区域重新加载显示界面。在这个例子中,对于支持自动匹配屏幕尺寸的应用,也就是包括预设显示区域的应用进行了兜底处理。
19、结合第一方面,在第一方面的某些实现方式中,在重新加载显示界面的进程中,根据旋转前的第一界面的活动区域和第二界面的活动区域组成的整体活动区域,确定目标活动区域时,可以包括:对整体活动区域进行等比例缩放,使得缩放后的活动区域与电子设备的旋转后的屏幕匹配,从而得到目标活动区域。
20、在这种出现方式中,给出了将旋转前的整体活动区域等比例缩放后得到目标活动区域的方案。因为在旋转前后屏幕的宽和高互换了,所以整体活动区域旋转之后可能高度或宽度会超过屏幕尺寸,或者二者远小于屏幕尺寸,所以可以通过等比例缩放来适配旋转后的屏幕。
21、结合第一方面,在第一方面的某些实现方式中,在重新加载显示界面的进程中,根据旋转前的第一界面的活动区域和第二界面的活动区域组成的整体活动区域,确定目标活动区域时,可以包括:从存储屏幕总显示区域的大小的存储单元中读取总显示区域的大小,总显示区域包括第一界面的活动区域和第二界面的活动区域;将总显示区域的大小进行等比例缩放后,得到目标活动区域的大小。
22、对于电子设备而言,每个活动区域的大小都会保存,但是可能会有覆盖机制的电子设备导致,只会存储一个活动区域,所以对于这样的情况就没有办法采用将两个活动区域的大小都读取出来然后进行叠加运算来得到整体活动区域了。但是经分析发现,电子设备还会有特定的存储单元来存储整体显示区域(总显示区域)的大小,而整体显示区域就会包括这两个活动区域,或者说整体显示区域的大小在只有两个活动区域的情况下,就是这两个活动区域的总占屏面积。所以可以直接从存储屏幕总显示区域的大小的存储单元中读取总显示区域的大小,然后将这个总显示区域等比例缩放就可以得到目标活动区域了。
23、如果电子设备会存储多个活动区域的大小的时候,就可以先读取第一界面的活动区域的数值和第二界面的活动区域的数值,然后将二者叠加之后的总和作为目标活动区域的数值。应理解,这个例子中,数值是指宽和高,第一界面的活动区域的宽度与第二界面的活动区域的宽度之和就是目标活动区域的宽度,第一界面的活动区域的高度与第二界面的活动区域的高度之和就是目标活动区域的高度。这种方式增加了计算的步骤,且需要能够获取两个活动区域的数值才可以。
24、结合第一方面,在第一方面的某些实现方式中,上述方法还包括:当自动旋转功能为开启状态时,当检测到电子设备被旋转后,启动重新加载显示界面的进程。
25、也就是说,为检测旋转和重新加载的步骤增加了一个执行条件,只有在自动旋转功能为开启状态的时候才会执行。因为如果没有开启自动旋转功能,即使电子设备旋转了,也不会触发重新加载显示界面的流程,也就不存在着重新适配屏幕尺寸进行显示的需求了。
26、第二方面,提供了一种执行重新加载显示界面的转场动效的装置,该装置包括由软件和/或硬件组成的用于执行第一方面的任意一种方法的单元。
27、第三方面,提供了一种电子设备,包括存储器、处理器以及存储在存储器中并可在处理器上运行的计算机程序,当处理器执行计算机程序时使得该电子设备能够实现第一方面的任意一种方法。
28、第四方面,提供了一种芯片,包括处理器,该处理器用于读取并执行存储在存储器中的计算机程序,当计算机程序被处理器执行时使得该芯片所在的电子设备能够实现第一方面的任意一种方法。
29、可选地,该芯片还包括存储器,存储器与处理器电连接。
30、可选地,该芯片还可以包括通信接口。
31、第五方面,提供了一种计算机可读存储介质,该计算机可读存储介质存储有计算机程序,当计算机程序被电子设备执行时能够实现第一方面的任意一种方法。
32、第六方面,提供了一种计算机程序产品,该计算机程序产品包括计算机程序,当计算机程序被电子设备执行时能够实现第一方面的任意一种方法。