CN114064174B - 一种页面控制的方法、装置及存储介质 - Google Patents

一种页面控制的方法、装置及存储介质 Download PDF

Info

Publication number
CN114064174B
CN114064174B CN202111323714.2A CN202111323714A CN114064174B CN 114064174 B CN114064174 B CN 114064174B CN 202111323714 A CN202111323714 A CN 202111323714A CN 114064174 B CN114064174 B CN 114064174B
Authority
CN
China
Prior art keywords
page
local
local page
switching
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
Application number
CN202111323714.2A
Other languages
English (en)
Other versions
CN114064174A (zh
Inventor
陈维
徐泽君
张冠南
侯博
于光学
杨宸
孙浩
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Seashell Housing Beijing Technology Co Ltd
Original Assignee
Seashell Housing Beijing Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Seashell Housing Beijing Technology Co Ltd filed Critical Seashell Housing Beijing Technology Co Ltd
Priority to CN202111323714.2A priority Critical patent/CN114064174B/zh
Publication of CN114064174A publication Critical patent/CN114064174A/zh
Application granted granted Critical
Publication of CN114064174B publication Critical patent/CN114064174B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/451Execution 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

一种页面控制的方法、装置及存储介质
技术领域
本申请涉及计算机技术领域,尤其涉及一种页面控制的方法,一种页面控制的装置,一种计算机可读存储介质,一种计算机程序产品。
背景技术
为了更好地与用户交互,应用程序通常有用户界面(UI)。比如:Flutter是谷歌开发的移动UI框架,可以基于IOS或安卓(Android)构建用户界面。根据业务的需求,用户界面还具备页面切换的功能,且全局页面中还可能包含局部页面。在现有技术中,页面切换由导航组件实现,但如果全局页面包含局部页面,导航组件可能无法确定需要控制的是全局页面还是局部页面,导致页面控制发生错误。
发明内容
针对上述现有技术,本发明实施例公开一种页面控制的方法,可以克服对全局页面和局部页面控制发生混淆的缺陷,达到分别控制,避免混淆错误的目的。
鉴于此,本申请实施例提出一种页面控制的方法,该方法包括:
接收页面切换请求指令;
判断页面切换请求指令所针对的页面类型;
响应于确定所述页面类型为全局页面时,利用已有的全局页面导航组件实现全局页面的切换;
响应于确定所述页面类型为局部页面时,利用创建的局部页面控制器实现局部页面的切换,所述局部页面控制器不同于所述全局页面导航组件。
进一步地,
所述响应于确定所述页面类型为局部页面时,利用创建的局部页面控制器实现局部页面的切换的步骤包括:
判断所述页面切换请求指令的切换方向;
响应于所述切换方向为向前切换时,所述局部页面控制器添加新的局部页面并显示;
响应于所述切换方向为回退切换时,所述局部页面控制器删除当前显示的局部页面。
进一步地,
所述局部页面控制器添加新的局部页面并显示的步骤包括:
获取创建的局部页面容器,所述局部页面容器为承载局部页面所具备功能的容器;
调用所述局部页面容器的页面添加方法,将新的局部页面添加在所述局部页面容器的页面列表的末尾,所述页面列表原有的列表末尾的元素对应第一局部页面,新的列表末尾的元素对应第二局部页面,所述页面列表按照从底层到顶层的顺序存储所述局部页面,列表末尾的元素对应位于顶层的局部页面;
将切换前位于顶层的第一局部页面需要传输的数据作为页面参数传输给所述第二局部页面;
所述局部页面容器的布局组件将所述页面列表中的局部页面显示出来,所述第二局部页面位于顶层显示出来,以实现从所述第一局部页面向前切换到所述第二局部页面,所述布局组件是实现页面显示功能的组件。
进一步地,
所述局部页面控制器删除当前显示的局部页面的步骤包括:
获取创建的局部页面容器,所述局部页面容器为承载局部页面所具备功能的容器;
调用所述局部页面容器的页面删除方法,将所述页面列表中原有的列表末尾的元素删除,所述原有的列表末尾的元素对应所述第四局部页面,新的列表末尾的元素对应所述第三局部页面,所述页面列表按照从底层到顶层的顺序存储所述局部页面,列表末尾的元素为位于顶层的局部页面;
根据所述第四局部页面的页面标识获取事先保存的所述第四局部页面需要传输的数据,并将所述第四局部页面需要传输的数据传输给所述第三局部页面;
所述局部页面容器的布局组件将所述页面列表中的局部页面显示出来,所述第三局部页面位于顶层显示,以实现从所述第四局部页面回退切换到所述第三局部页面,所述布局组件是实现页面显示功能的组件。
本发明实施例公开一种页面控制的装置,可以克服对全局页面和局部页面控制发生混淆的缺陷,达到分别控制,避免混淆错误的目的。
该装置包括:接收单元、第一判断单元、全局页面导航组件和局部页面控制器;
所述接收单元,用于接收页面切换请求指令;
所述第一判断单元,用于判断页面切换请求指令所针对的页面类型;
所述全局页面导航组件,响应于确定所述页面类型为全局页面时实现全局页面的切换;
所述局部页面控制器,响应于确定所述页面类型为局部页面时实现局部页面的切换,所述局部页面控制器不同于所述全局页面导航组件。
进一步地,
所述局部页面控制器包括:第二判断单元、向前切换单元、回退切换单元;
所述第二判断单元,用于判断所述页面切换请求指令的切换方向;
所述向前切换单元,响应于所述切换方向为向前切换时添加新的局部页面并显示;
所述回退切换单元,响应于所述切换方向为回退切换时删除当前显示的局部页面。
进一步地,
所述向前切换单元包括:第一获取单元、页面添加单元、第一数据传输单元,向前切换页面显示单元;
所述第一获取单元,用于获取创建的局部页面容器,所述局部页面容器为承载局部页面所具备功能的容器;
所述页面添加单元,用于调用所述局部页面容器的页面添加方法,将新的局部页面添加在所述局部页面容器的页面列表的末尾,所述页面列表原有的列表末尾的元素对应第一局部页面,新的列表末尾的元素对应第二局部页面,所述页面列表按照从底层到顶层的顺序存储所述局部页面,列表末尾的元素对应位于顶层的局部页面;
所述第一数据传输单元,用于将切换前位于顶层的第一局部页面需要传输的数据作为页面参数传输给所述第二局部页面;
所述向前切换页面显示单元,用于所述局部页面容器的布局组件将所述页面列表中的局部页面显示出来,所述第二局部页面位于顶层显示出来,以实现从所述第一局部页面向前切换到所述第二局部页面,所述布局组件是实现页面显示功能的组件。
进一步地,
所述回退切换单元包括:第二获取单元、页面删除单元、第二数据传输单元、回退切换显示单元;
所述第二获取单元,用于获取创建的局部页面容器,所述局部页面容器为承载局部页面所具备功能的容器;
所述页面删除单元,用于调用所述局部页面容器的页面删除方法,将所述页面列表中原有的列表末尾的元素删除,所述原有的列表末尾的元素对应所述第四局部页面,新的列表末尾的元素对应所述第三局部页面,所述页面列表按照从底层到顶层的顺序存储所述局部页面,列表末尾的元素为位于顶层的局部页面;
所述第二数据传输单元,用于根据所述第四局部页面的页面标识获取事先保存的所述第四局部页面需要传输的数据,并将所述第四局部页面需要传输的数据传输给所述第三局部页面;
所述回退切换显示单元,用于所述局部页面容器的布局组件将所述页面列表中的局部页面显示出来,所述第三局部页面位于顶层显示出来,以实现从所述第四局部页面回退切换到所述第三局部页面,所述布局组件是实现页面显示功能的组件。
本申请实施例还提出一种计算机可读存储介质,其上存储有计算机指令,所述指令被处理器执行时可实现上述任意一种页面控制的方法的步骤。
本申请实施例还提出一种计算机程序产品,包括计算机指令,所述计算机指令在被处理器执行时实施如上述任一项所述页面控制的方法。
综上所述,本申请实施例对于全局页面和局部页面分别进行控制,利用现有的全局页面导航组件实现对全局页面的切换,利用创建的局部页面控制器对局部页面的切换。由于分别利用不同方式切换,因此可以避免发生全局页面和局部页面混淆的错误,从而更加准确地控制用户界面。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实现页面控制的方法实施例一的流程图。
图2是本申请实施例二中页面向前切换的示意图。
图3是本申请实施例二中页面回退切换的示意图。
图4是本申请实现页面控制的方法实施例二的流程图。
图5是本申请实施例二中局部页面控制器添加新的局部页面并显示的方法流程图。
图6是本申请实施例二中局部页面控制器制删除当前显示的局部页面的方法流程图。
图7是本申请实现页面控制的方法实施例三的流程图。
图8是本申请实施例三中APP页面切换关系示意图。
图9是本申请方法实施例三中局部页面控制器controller添加新的局部页面并显示的方法流程图。
图10是本申请方法实施例三中局部页面控制器制删除当前显示的局部页面的方法流程图。
图11是应用本申请实施例三方案的结果示例。
图12是应用现有技术的结果示例。
图13是本申请实现页面控制的装置实施例一的结构示意图。
图14是本申请实现页面控制的装置实施例二的结构示意图。
图15是装置实施例二中向前切换单元1306的内部结构示意图。
图16是装置实施例二中回退切换单元1307的内部结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例例如能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含。例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其他步骤或单元。
下面以具体实施例对本发明的技术方案进行详细说明。下面几个具体实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例不再赘述。
针对现有技术无法区分全局页面和局部页面的情况,本申请实施例将两种页面分别利用不同的方式处理。对于全局页面,利用已有的全局页面导航组件进行全局页面的切换;对于局部页面,利用创建的局部页面控制器进行局部页面的切换。由于区分了两类页面的处理方式,本申请实施例在进行页面控制时,可以避免发生全局页面和局部页面混淆的错误,更加准确地控制用户界面。
图1是本申请实现页面控制的方法实施例一的流程图。如图1所示,该方法包括:
步骤101:接收页面切换请求指令。
用户通常通过点击用户界面上的按钮或链接等方式来指示页面的切换操作,因此用户界面所在的应用程序可以接收到页面切换请求指令。
步骤102:判断页面切换请求指令所针对的页面类型。
本申请实施例有两种页面类型,一种是全局页面,另一种是局部页面。全局页面是指铺满整个用户界面的页面,而局部页面是指仅局限于用户界面一部分区域的页面。对于这两种不同类型的页面,本申请实施例利用步骤103处理全局页面的切换,利用步骤104处理局部页面的切换。
步骤103:响应于确定所述页面类型为全局页面时,利用已有的全局页面导航组件实现全局页面的切换。
本步骤所述的全局页面导航组件可以采用现有技术实现,比如谷歌Flutter中的Navigator组件。
步骤104:响应于确定所述页面类型为局部页面时,利用创建的局部页面控制器实现局部页面的切换,所述局部页面控制器不同于所述全局页面导航组件。
本步骤所述的局部页面控制器是专门针对局部页面的,可以直接对局部页面的切换进行控制。需要注意的是,局部页面控制器与全局页面导航组件不同,因此可以区分,避免页面切换过程中的混淆错误。
实际应用中,页面切换的方向可以是向前切换,也可以是回退切换。图2是本申请实施例二中页面向前切换的示意图。如图2所示,假设当前显示的是页面1,当点击页面1上某个按钮“XX”时,将切换到页面2。此时,页面1将被覆盖,当前应当显示出页面2。图3是本申请实施例二中页面回退切换的示意图。如图3所示,假设当前显示的是页面2,当点击页面2上某个按钮“YY”时,将切换到页面1。此时,页面2将被删除,重新显示出页面1。现有的全局页面导航组件可以实现上述切换。
在本申请实施例二中,为了与已有的全局页面导航组件区分,创建了新的局部页面控制器,用于实现局部页面的切换。图4是本申请实现页面控制的方法实施例二的流程图。如图4所示,该方法包括:
步骤401:接收页面切换请求指令。
本步骤与方法实施例一中的步骤101相同。
步骤402:判断页面切换请求指令所针对的页面类型。
本步骤与方法实施例一中的步骤102相同。
步骤403:响应于确定所述页面类型为全局页面时,利用已有的全局页面导航组件实现全局页面的切换。
本步骤与方法实施例一中的步骤103相同。
下述步骤404~步骤406是响应于确定所述页面类型为局部页面时,利用创建的局部页面控制器实现局部页面的切换的方式,即方法实施例一中步骤104的具体实施方式。
步骤404:判断页面切换请求指令的切换方向。
在实际的业务开发中,各个页面之间存在关联关系,不同页面之间切换存在如图2和图3的两种不同方式。如果是向前切换,则执行步骤405实现。如果是回退切换,则执行步骤406实现。
步骤405:响应于切换方向为向前切换时,局部页面控制器添加新的局部页面并显示。
本步骤中,局部页面控制器添加新的局部页面并显示的方法可以按照如下方式实现。图5是本申请实施例二中局部页面控制器添加新的局部页面并显示的方法流程图。如图5所示,该方法包括:
步骤501:获取创建的局部页面容器,局部页面容器为承载局部页面所具备功能的容器。
本领域技术人员知道,容器技术是一种服务调用规范框架技术。由于本申请实施例中的容器专门用于局部页面,因此称为局部页面容器。本申请实施例中局部页面容器承载了局部页面所具备的功能,比如包括:页面列表、页面添加方法、页面删除方法以及布局组件等。当然,实际应用中的局部页面容器所承载的可以与本实施例描述的不同,可以根据情况自行确定。
步骤502:调用所述局部页面容器的页面添加方法,将新的局部页面添加在局部页面容器的页面列表的末尾,页面列表原有的列表末尾的元素对应第一局部页面,新的列表末尾的元素对应第二局部页面,页面列表按照从底层到顶层的顺序存储局部页面,列表末尾的元素对应位于顶层的局部页面。
本申请实施例中的局部页面容器包括用于保存页面的页面列表,比如为一数组。页面列表中每一个元素对应一个局部页面,且按照从底层到顶层的顺序保存。假设本申请实施例中的页面列表如表一所示:
序号 页面
1 局部页面1
n 局部页面n
表一
其中,局部页面1是位于最底层的页面,局部页面n是位于最顶层的页面。将新的局部页面n+1添加在页面列表的末尾后,页面列表如表二所示。
表二
另外,本步骤中的页面添加方法是局部页面容器中的一种方法,其功能是将新的局部页面添加到页面列表的末尾。
步骤503:将切换前位于顶层的第一局部页面需要传输的数据作为页面参数传输给第二局部页面。
实际应用中,由于页面之间具有关联关系,因此有可能传输数据。为了区分不同的页面,这里将位于当前顶层的局部页面称为第一局部页面,将即将切换的局部页面称为第二局部页面。比如,某个局部页面1(第一局部页面)需要选择用户姓名,当选择用户姓名“张三”之后,会将“张三”作为参数传输给局部页面2(第二局部页面)。
步骤504:局部页面容器的布局组件将页面列表中的局部页面显示出来,第二局部页面位于顶层显示出来,以实现从第一局部页面向前切换到第二局部页面,布局组件是实现页面显示功能的组件。
本申请实施例的局部页面容器包含一个布局组件(overlay),其作用是将页面列表中的局部页面显示出来。由于列表末尾的第二局部页面位于顶层,因此最终会显示出来。仍然以上述表二为例,布局组件将页面列表中的1~n+1个局部页面进行显示,由于局部页面n+1位于顶层,局部页面1~局部页面n被覆盖,因此产生从局部页面n(第一局部页面)切换到局部页面n+1(第二局部页面)的展示效果。
步骤406:响应于切换方向为回退切换时,局部页面控制器删除当前显示的局部页面。
本步骤中,局部页面控制器删除当前显示的局部页面可以按照如下方式实现。图6是本申请实施例二中局部页面控制器制删除当前显示的局部页面的方法流程图。如图6所示,该方法包括:
步骤601:获取创建的局部页面容器,局部页面容器为承载局部页面所具备功能的容器。
本步骤与步骤501相同。
步骤602:调用局部页面容器的页面删除方法,将页面列表中原有的列表末尾的元素删除,原有的列表末尾的元素对应第四局部页面,新的列表末尾的元素对应第三局部页面,页面列表按照从底层到顶层的顺序存储所述局部页面,列表末尾的元素为位于顶层的局部页面。
假设本申请实施例中的局部页面容器中的页面列表如表二所示,局部页面n+1(第四局部页面,这里所述第四局部页面与上述第二局部页面为同一个页面,实际应用中可以不同)是位于顶层的页面,删除列表末尾后的页面列表如表一所示,此时的列表末尾的元素为局部页面n(第三局部页面,这里所述第三局部页面与上述第一局部页面为同一个页面,实际应用中可以不同)。同样,本步骤中的页面删除方法是局部页面容器中的一种方法,其功能是将页面列表的末尾元素删除。
步骤603:根据第四局部页面的页面标识获取事先保存的第四局部页面需要传输的数据,并将第四局部页面需要传输的数据传输给第三局部页面。
与向前切换不同的是,在回退切换中,由于第四局部页面在删除前无法确定应该回退到哪一个局部页面,因此不能直接将需要传输的数据直接传输给切换后的局部页面,而是将需要传输的数据与对应的页面标识事先进行保存,以便于后续获取该数据。
步骤604:局部页面容器的布局组件将页面列表中的局部页面显示出来,第三局部页面位于顶层显示,以实现从第四局部页面回退切换到第三局部页面,布局组件是实现页面显示功能的组件。
本步骤仍然通过布局组件(overlay)将页面列表中的局部页面显示出来。由于列表末尾的第一局部页面位于顶层,因此最终会显示出来。仍然以上述表一为例,布局组件将页面列表中的1~n个局部页面进行显示,由于局部页面n位于顶层,局部页面1~局部页面n-1被覆盖,因此产生从局部页面n+1(第二局部页面)回退到局部页面n(第一局部页面)的展示效果。
本申请实施例中,提供了一种详细的向前切换和回退切换的具体方案,创建了局部页面控制器和局部页面容器,局部页面容器包括页面列表、页面添加方法、页面删除方法以及布局组件,由局部页面控制器调用并实现。由于本申请实施例中的全局页面导航组件与局部页面控制器完全不同,彼此分离,在完成全局页面的切换和局部页面的切换时,可以避免混淆错误,更好地满足用户界面的需求。
在本申请实施例三中,假设应用程序APP采用谷歌Flutter中的Navigator组件作为全局页面导航组件,以实现全局页面的切换。本申请实施例还假设利用容器技术创建了局部页面容器StatefulWidget和局部页面控制器controller。其中,局部页面容器StatefulWidget包括:页面列表OverlayEntry、页面添加方法add、页面删除方法remove以及布局组件Overlay。局部页面控制器controller可以调用StatefulWidget容器中的方法,StatefulWidget容器中Overlay组件负责显示局部页面。另外,为了便于保存页面之间传输的数据,还可以为局部页面设置completer用于保存数据,并将completer和局部页面标识的对应关系保存在字典(map)中。在map中,页面标识为key值,通过key值即可获取对应的completer,从而确定需要传输的数据。
图8是本申请实施例三中APP页面切换关系示意图。如图8所示,本申请实施例中APP包括全局页面导航组件Navigator和局部页面控制器controller,全局页面导航组件Navigator用于管理全局页面的切换,局部页面是全局页面的一部分,由局部页面控制器controller管理进行切换。
图7是本申请实现页面控制的方法实施例三的流程图。如图7所示,该方法包括:
步骤701:接收页面切换请求指令。
本步骤与方法实施例二中的步骤401相同。
步骤702:判断页面切换请求指令所针对的页面类型。
本步骤与方法实施例二中的步骤402相同。
步骤703:响应于确定所述页面类型为全局页面时,利用Navigator组件实现全局页面的切换。
下述步骤704~步骤706是响应于确定所述页面类型为局部页面时,利用创建的局部页面控制器实现局部页面的切换的方式,即方法实施例一中步骤404的具体实施方式。
步骤704:判断页面切换请求指令的切换方向。
本步骤与方法实施例二中的步骤404相同。
步骤705:响应于切换方向为向前切换时,局部页面控制器controller添加新的局部页面并显示。
本步骤中,局部页面控制器controller添加新的局部页面并显示的方法可以按照如下方式实现。图9是本申请方法实施例三中局部页面控制器controller添加新的局部页面并显示的方法流程图。如图9所示,该方法包括:
步骤901:获取创建的局部页面容器StatefulWidget,局部页面容器StatefulWidget为承载局部页面所具备功能的容器。
步骤902:调用局部页面容器StatefulWidget的页面添加方法add,将新的局部页面添加在局部页面容器StatefulWidget的页面列表OverlayEntry的末尾,页面列表OverlayEntry原有的列表末尾的元素对应第一局部页面widget1,新的列表末尾的元素对应第二局部页面widget2,页面列表OverlayEntry按照从底层到顶层的顺序存储局部页面,列表末尾的元素对应位于顶层的局部页面。
本步骤,假设原有的列表末尾的元素对应第一局部页面为widget1,新的列表末尾的元素对应第二局部页面为widget2。添加新的局部页面之前,页面列表OverlayEntry如表三所示:
序号 页面
1 widget1
表三添加的新的局部页面widget2之后,页面列表OverlayEntry如表四所示:
序号 页面
1 widget1
2 widget2
表四
步骤903:将切换前位于顶层的第一局部页面widget1需要传输的数据作为页面参数传输给第二局部页面widget2。
本步骤与方法实施例二的步骤503相同。
步骤904:局部页面容器StatefulWidget的Overlay组件将页面列表中的局部页面显示出来,第二局部页面widget2位于顶层显示,以实现从第一局部页面widget1向前切换到第二局部页面widget2。
上述步骤901~步骤904是实现从第一局部页面widget1向前切换到第二局部页面widget2的具体方法。
步骤706:响应于切换方向为回退切换时,局部页面控制Widget删除当前显示的局部页面。
本步骤中,局部页面控制器制删除当前显示的局部页面可以按照如下方式实现。图10是本申请方法实施例三中局部页面控制器制删除当前显示的局部页面的方法流程图。如图10所示,该方法包括:
步骤1001:获取局部页面容器StatefulWidget,局部页面容器StatefulWidget为承载局部页面所具备功能的容器。
本步骤与步骤901相同。
步骤1002:调用局部页面容器StatefulWidget的页面删除方法remove,将页面列表OverlayEntry中原有的列表末尾的元素删除,原有的列表末尾的元素对应所述第二局部页面widget2,新的列表末尾的元素对应第一局部页面widget1,页面列表按照从底层到顶层的顺序存储所述局部页面,列表末尾的元素为位于顶层的局部页面。
假设本申请实施例中的局部页面容器中的页面列表OverlayEntry如表四所示,局部页面widget2是位于顶层的页面,删除列表末尾后的页面列表如表三所示,此时的列表末尾的元素为局部页面widget1。
步骤1003:根据第二局部页面widget2的页面标识获取事先保存的第二局部页面widget2需要传输的数据,并将第二局部页面widget2需要传输的数据传输给第一局部页面widget1。
如前所述,widget2需要传输的数据保存在completer中,且和第二局部页面widget2的页面标识的对应关系保存在map中。假设本申请实施例中的map如表五所示,其中,页面标识002为key值,通过key值即可获取对应的completer,从而确定需要传输的数据。
key completer
002 成功
表五
在本步骤中,通过key值002从map中确定对应的completer为“成功”,从而将“成功”传输给第一局部页面widget1,表示第二局部页面widget2此前被成功显示。
步骤1004:局部页面容器StatefulWidget的Overlay组件将页面列表OverlayEntry中的局部页面显示出来,第一局部页面widget1位于顶层显示,以实现从第二局部页面widget2回退切换到第一局部页面widget1。
上述步骤1001~步骤1004是实现从第二局部页面widget2回退切换到第一局部页面widget1的具体方法。
本申请实施例列举了一种实现页面控制的详细方案,采用谷歌Flutter中的Navigator组件作为全局页面导航组件,创建局部页面容器StatefulWidget和局部页面控制器controller,利用局部页面控制器controller调用局部页面容器StatefulWidget,从而实现局部页面的切换。由于创建局部页面容器StatefulWidget和局部页面控制器controller与现有的谷歌Flutter中的Navigator组件完全不同,因此在完成全局页面的切换和局部页面的切换时,可以避免混淆错误,更好地满足用户界面的需求。
本申请上述各实施例方案可以应用于需要开发用户界面的场景,尤其适用于手机、平板或计算机APP用户界面开发中。图11是应用本申请实施例三方案的结果示例。在图11中,假设某个APP的全局页面1包含局部页面1,在点击局部页面1的按钮1之后,由局部页面控制器对页面切换进行控制,局部页面1切换为局部页面2,避免了混淆。相反,如果利用现有技术,即用相同的页面导航组件对全局页面和局部页面进行控制。图12是应用现有技术的结果示例。如图12所示,同样假设某个APP的全局页面1包含局部页面1,在点击局部页面1的按钮1之后,APP不清楚应该由全局的页面导航组件切换,还是由局部的页面导航组件切换,本应该在局部显示的局部页面2错误地进行了全局显示,成为了全局页面2。可见,应用本申请实施例方案则可以规避该错误,从而更好地满足用户界面的需求。
本申请实施例还提供一种页面控制的装置。图13是本申请装置实施例一的结构示意图。如图13所示,该装置包括:接收单元1301、第一判断单元1302、全局页面导航组件1303和局部页面控制器1304。其中:
接收单元1301,用于接收页面切换请求指令。
第一判断单元1302,用于判断页面切换请求指令所针对的页面类型。
全局页面导航组件1303,响应于确定所述页面类型为全局页面时实现全局页面的切换。
局部页面控制器1304,响应于确定所述页面类型为局部页面时实现局部页面的切换,所述局部页面控制器不同于所述全局页面导航组件。
也就是说,接收单元1301接收页面切换请求指令;第一判断单元1302判断页面切换请求指令所针对的页面类型;全局页面导航组件1303响应于确定所述页面类型为全局页面时实现全局页面的切换;局部页面控制器1304响应于确定所述页面类型为局部页面时实现局部页面的切换,所述局部页面控制器不同于所述全局页面导航组件。
由于局部页面控制器与全局页面导航组件不同,因此可以区分,避免页面切换过程中的混淆错误。
图14是本申请实现页面控制的装置实施例二的结构示意图。如图14所示,该装置包括接收单元1301、第一判断单元1302、全局页面导航组件1303和局部页面控制器1304。其中局部页面控制器1304包括:第二判断单元1305、向前切换单元1306、回退切换单元1307。接收单元1301、第一判断单元1302、全局页面导航组件1303和局部页面控制器1304的功能和结构与装置实施例一相同,不再赘述。另外:
第二判断单元1305,用于判断所述页面切换请求指令的切换方向。
向前切换单元1306,响应于所述切换方向为向前切换时添加新的局部页面并显示。
回退切换单元1307,响应于所述切换方向为回退切换时删除当前显示的局部页面。
也就是说,接收单元1301接收页面切换请求指令;第一判断单元1302判断页面切换请求指令所针对的页面类型;全局页面导航组件1303响应于确定所述页面类型为全局页面时实现全局页面的切换;局部页面控制器1304响应于确定所述页面类型为局部页面时实现局部页面的切换;具体的,第二判断单元1305判断所述页面切换请求指令的切换方向;如果切换方向为向前切换,向前切换单元1306添加新的局部页面并显示;如果切换方向为回退切换,回退切换单元1307删除当前显示的局部页面。
图15是装置实施例二中向前切换单元1306的内部结构示意图。如图15所示,向前切换单元1306包括第一获取单元1308、页面添加单元1309、第一数据传输单元1310,向前切换页面显示单元1311。其中:
第一获取单元1308,用于获取创建的局部页面容器,所述局部页面容器为承载局部页面所具备功能的容器。
页面添加单元1309,用于调用所述局部页面容器的页面添加方法,将新的局部页面添加在所述局部页面容器的页面列表的末尾,所述页面列表原有的列表末尾的元素对应第一局部页面,新的列表末尾的元素对应第二局部页面,所述页面列表按照从底层到顶层的顺序存储所述局部页面,列表末尾的元素对应位于顶层的局部页面。
第一数据传输单元1310,用于将切换前位于顶层的第一局部页面需要传输的数据作为页面参数传输给所述第二局部页面。
向前切换页面显示单元1311,用于所述局部页面容器的布局组件将所述页面列表中的局部页面显示出来,所述第二局部页面位于顶层显示出来,以实现从所述第一局部页面向前切换到所述第二局部页面,所述布局组件是实现页面显示功能的组件。
图16是装置实施例二中回退切换单元1307的内部结构示意图。如图16所示,回退切换单元1307包括第二获取单元1312、页面删除单元1313、第二数据传输单元1314、回退切换显示单元1315。其中:
第二获取单元1312,用于获取创建的局部页面容器,所述局部页面容器为承载局部页面所具备功能的容器。
页面删除单元1313,用于调用所述局部页面容器的页面删除方法,将所述页面列表中原有的列表末尾的元素删除,所述原有的列表末尾的元素对应第四局部页面,新的列表末尾的元素对应所述第三局部页面,所述页面列表按照从底层到顶层的顺序存储所述局部页面,列表末尾的元素为位于顶层的局部页面。
第二数据传输单元1314,用于根据所述第四局部页面的页面标识获取事先保存的所述第四局部页面需要传输的数据,并将所述第四局部页面需要传输的数据传输给所述第三局部页面。
回退切换显示单元1315,用于所述局部页面容器的布局组件将所述页面列表中的局部页面显示出来,所述第三局部页面位于顶层显示出来,以实现从所述第四局部页面回退切换到所述第三局部页面,所述布局组件是实现页面显示功能的组件。
实际应用中,图15的向前切换单元1306可以按照方法实施例二的步骤501~步骤504添加新的局部页面,图16的回退切换单元1307可以按照方法实施例二的步骤601~步骤604删除当前显示的局部页面。
在本装置实施例二中,提供了一种详细的向前切换和回退切换的具体方案,全局页面导航组件1303和局部页面控制器1304完全不同,彼此分离,在完成全局页面的切换和局部页面的切换时,可以避免混淆错误,更好地满足用户界面的需求。
本申请实施例还提供一种计算机可读介质,所述计算机可读存储介质存储指令,所述指令在由处理器执行时可执行如上所述的页面控制的方法的步骤。实际应用中,所述的计算机可读介质可以是上述实施例中描述的设备/装置/系统中所包含的,也可以是单独存在,而未装配入该设备/装置/系统中。上述计算机可读存储介质承载有一个或者多个程序,当上述一个或多个程序被执行时,可以实现上述各实施例描述的页面控制的方法。根据本申请公开的实施例,计算机可读存储介质可以是非易失性的计算机可读存储介质,例如可以包括但不限于:便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件,或者上述的任意合适的组合,但不用于限制本申请保护的范围。在本申请公开的实施例中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
本申请实施例还提供一种计算机程序产品,该计算机程序产品包括计算机指令,该计算机指令在被处理器执行时实施如上述任一实施例所述的方法。
本申请附图中的流程图和框图,示出了按照本申请公开的各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或者代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应该注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同附图中所标准的顺序发生。例如,两个连接地表示的方框实际上可以基本并行地执行,它们有时也可以按照相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或者流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
本领域技术人员可以理解,本公开的各个实施例和/或权利要求中记载的特征可以进行多种组合和/或结合,即使这样的组合或结合没有明确记载于本申请中。特别地,在不脱离本申请精神和教导的情况下,本申请的各个实施例和/或权利要求中记载的特征可以进行多种组合和/或结合,所有这些组合和/或结合均落入本申请公开的范围。
本文中应用了具体实施例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思路,并不用于限制本申请。对于本领域的技术人员来说,可以依据本发明的思路、精神和原则,在具体实施方式及应用范围上进行改变,其所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。

Claims (7)

1.一种页面控制的方法,其特征在于,该方法包括:
接收页面切换请求指令;
判断页面切换请求指令所针对的页面类型;
响应于确定所述页面类型为全局页面时,利用已有的全局页面导航组件实现全局页面的切换;以及
响应于确定所述页面类型为局部页面时,利用创建的局部页面控制器实现局部页面的切换,所述局部页面控制器不同于所述全局页面导航组件;
其中,所述响应于确定所述页面类型为局部页面时,利用创建的局部页面控制器实现局部页面的切换的步骤包括:判断所述页面切换请求指令的切换方向;响应于所述切换方向为向前切换时,所述局部页面控制器添加新的局部页面并显示;响应于所述切换方向为回退切换时,所述局部页面控制器删除当前显示的局部页面;
其中,所述局部页面控制器添加新的局部页面并显示的步骤包括:获取创建的局部页面容器,所述局部页面容器为承载局部页面所具备功能的容器;
其中,所述局部页面控制器删除当前显示的局部页面的步骤包括:获取创建的局部页面容器,所述局部页面容器为承载局部页面所具备功能的容器;
所述局部页面容器包括页面列表、页面添加方法、页面删除方法以及布局组件,所述页面列表按照从底层到顶层的顺序存储所述局部页面,所述布局组件是实现页面显示功能的组件。
2.根据权利要求1所述的页面控制的方法,其特征在于,所述局部页面控制器添加新的局部页面并显示的步骤还包括:
调用所述局部页面容器的页面添加方法,将新的局部页面添加在所述局部页面容器的页面列表的末尾,所述页面列表原有的列表末尾的元素对应第一局部页面,新的列表末尾的元素对应第二局部页面,所述页面列表按照从底层到顶层的顺序存储所述局部页面,列表末尾的元素对应位于顶层的局部页面;
将切换前位于顶层的第一局部页面需要传输的数据作为页面参数传输给所述第二局部页面;
所述局部页面容器的布局组件将所述页面列表中的局部页面显示出来,所述第二局部页面位于顶层显示出来,以实现从所述第一局部页面向前切换到所述第二局部页面。
3.根据权利要求1所述的页面控制的方法,其特征在于,所述局部页面控制器删除当前显示的局部页面的步骤还包括:
调用所述局部页面容器的页面删除方法,将所述页面列表中原有的列表末尾的元素删除,所述原有的列表末尾的元素对应第四局部页面,新的列表末尾的元素对应第三局部页面,所述页面列表按照从底层到顶层的顺序存储所述局部页面,列表末尾的元素为位于顶层的局部页面;
根据所述第四局部页面的页面标识获取事先保存的所述第四局部页面需要传输的数据,并将所述第四局部页面需要传输的数据传输给所述第三局部页面;
所述局部页面容器的布局组件将所述页面列表中的局部页面显示出来,所述第三局部页面位于顶层显示,以实现从所述第四局部页面回退切换到所述第三局部页面。
4.一种页面控制的装置,其特征在于,该装置包括:接收单元、第一判断单元、全局页面导航组件和局部页面控制器;
所述接收单元,用于接收页面切换请求指令;
所述第一判断单元,用于判断页面切换请求指令所针对的页面类型;
所述全局页面导航组件,响应于确定所述页面类型为全局页面时实现全局页面的切换;
所述局部页面控制器,响应于确定所述页面类型为局部页面时实现局部页面的切换,所述局部页面控制器不同于所述全局页面导航组件;
所述局部页面控制器包括:第二判断单元、向前切换单元、回退切换单元;
所述第二判断单元,用于判断所述页面切换请求指令的切换方向;
所述向前切换单元,响应于所述切换方向为向前切换时添加新的局部页面并显示;
所述回退切换单元,响应于所述切换方向为回退切换时删除当前显示的局部页面;
其中,所述响应于所述切换方向为向前切换时添加新的局部页面并显示,包括:获取创建的局部页面容器,所述局部页面容器为承载局部页面所具备功能的容器;
其中,所述响应于所述切换方向为回退切换时删除当前显示的局部页面,包括:获取创建的局部页面容器,所述局部页面容器为承载局部页面所具备功能的容器;
所述局部页面容器包括页面列表、页面添加方法、页面删除方法以及布局组件,所述页面列表按照从底层到顶层的顺序存储所述局部页面,所述布局组件是实现页面显示功能的组件。
5.根据权利要求4所述的页面控制的装置,其特征在于,所述向前切换单元包括:第一获取单元、页面添加单元、第一数据传输单元,向前切换页面显示单元;
所述第一获取单元,用于获取创建的局部页面容器,所述局部页面容器为承载局部页面所具备功能的容器;
所述页面添加单元,用于调用所述局部页面容器的页面添加方法,将新的局部页面添加在所述局部页面容器的页面列表的末尾,所述页面列表原有的列表末尾的元素对应第一局部页面,新的列表末尾的元素对应第二局部页面,所述页面列表按照从底层到顶层的顺序存储所述局部页面,列表末尾的元素对应位于顶层的局部页面;
所述第一数据传输单元,用于将切换前位于顶层的第一局部页面需要传输的数据作为页面参数传输给所述第二局部页面;
所述向前切换页面显示单元,用于所述局部页面容器的布局组件将所述页面列表中的局部页面显示出来,所述第二局部页面位于顶层显示出来,以实现从所述第一局部页面向前切换到所述第二局部页面。
6.根据权利要求4所述的页面控制的装置,其特征在于,所述回退切换单元包括:第二获取单元、页面删除单元、第二数据传输单元、回退切换显示单元;
所述第二获取单元,用于获取创建的局部页面容器,所述局部页面容器为承载局部页面所具备功能的容器;
所述页面删除单元,用于调用所述局部页面容器的页面删除方法,将所述页面列表中原有的列表末尾的元素删除,所述原有的列表末尾的元素对应的第四局部页面,新的列表末尾的元素对应第三局部页面,所述页面列表按照从底层到顶层的顺序存储所述局部页面,列表末尾的元素为位于顶层的局部页面;
所述第二数据传输单元,用于根据所述第四局部页面的页面标识获取事先保存的所述第四局部页面需要传输的数据,并将所述第四局部页面需要传输的数据传输给所述第三局部页面;
所述回退切换显示单元,用于所述局部页面容器的布局组件将所述页面列表中的局部页面显示出来,所述第三局部页面位于顶层显示,以实现从所述第四局部页面回退切换到所述第三局部页面。
7.一种计算机可读存储介质,其上存储有计算机指令,其特征在于,所述指令被处理器执行时可实现权利要求1~3任一项所述页面控制的方法的步骤。
CN202111323714.2A 2021-11-09 2021-11-09 一种页面控制的方法、装置及存储介质 Active CN114064174B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111323714.2A CN114064174B (zh) 2021-11-09 2021-11-09 一种页面控制的方法、装置及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111323714.2A CN114064174B (zh) 2021-11-09 2021-11-09 一种页面控制的方法、装置及存储介质

Publications (2)

Publication Number Publication Date
CN114064174A CN114064174A (zh) 2022-02-18
CN114064174B true CN114064174B (zh) 2024-03-08

Family

ID=80274563

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111323714.2A Active CN114064174B (zh) 2021-11-09 2021-11-09 一种页面控制的方法、装置及存储介质

Country Status (1)

Country Link
CN (1) CN114064174B (zh)

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101388041A (zh) * 2008-10-21 2009-03-18 深圳市同洲电子股份有限公司 一种手持终端的浏览器页面导航方法及系统
CN103051684A (zh) * 2012-12-07 2013-04-17 百度在线网络技术(北京)有限公司 将网站转化为Web App进行展示的方法、系统和装置
CN104991697A (zh) * 2015-06-17 2015-10-21 努比亚技术有限公司 图标的页面切换方法和装置
CN106598655A (zh) * 2016-12-05 2017-04-26 腾讯科技(深圳)有限公司 应用程序页面处理方法和装置
CN110647698A (zh) * 2019-08-12 2020-01-03 视联动力信息技术股份有限公司 页面加载方法、装置、电子设备及可读存储介质
CN110766772A (zh) * 2019-09-10 2020-02-07 北京字节跳动网络技术有限公司 基于Flutter跨平台海报制作方法装置介质和设备
CN110908677A (zh) * 2019-11-29 2020-03-24 安徽智恒信科技股份有限公司 一种Flutter应用安装包体积优化的方法及存储介质

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120297324A1 (en) * 2011-05-18 2012-11-22 Microsoft Corporation Navigation Control Availability
US11354378B2 (en) * 2019-09-13 2022-06-07 Adobe Inc. Web experience augmentation based on local and global content preferences

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101388041A (zh) * 2008-10-21 2009-03-18 深圳市同洲电子股份有限公司 一种手持终端的浏览器页面导航方法及系统
CN103051684A (zh) * 2012-12-07 2013-04-17 百度在线网络技术(北京)有限公司 将网站转化为Web App进行展示的方法、系统和装置
CN104991697A (zh) * 2015-06-17 2015-10-21 努比亚技术有限公司 图标的页面切换方法和装置
CN106598655A (zh) * 2016-12-05 2017-04-26 腾讯科技(深圳)有限公司 应用程序页面处理方法和装置
CN110647698A (zh) * 2019-08-12 2020-01-03 视联动力信息技术股份有限公司 页面加载方法、装置、电子设备及可读存储介质
CN110766772A (zh) * 2019-09-10 2020-02-07 北京字节跳动网络技术有限公司 基于Flutter跨平台海报制作方法装置介质和设备
CN110908677A (zh) * 2019-11-29 2020-03-24 安徽智恒信科技股份有限公司 一种Flutter应用安装包体积优化的方法及存储介质

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
SIMONE 等.《Flutter Cookbook》.Packt,2021,166-210. *

Also Published As

Publication number Publication date
CN114064174A (zh) 2022-02-18

Similar Documents

Publication Publication Date Title
KR101802920B1 (ko) 가상 머신 시스템 디스크 스냅 샷의 생성 방법 및 장치
CN107643880B (zh) 基于分布式文件系统的文件数据迁移的方法及装置
CN111881019B (zh) 一种用户界面测试方法及装置
CN111526312A (zh) 屏幕录像的录制、播放方法、录屏终端及播放终端
CN106354884B (zh) 一种基于分布式文件系统的数据对象删除方法及装置
US20140282253A1 (en) Method and apparatus for batch selection of multiple images
CN105468373A (zh) 一种分支合并方法及装置
US20160283062A1 (en) Storage medium, facility inspection support method, and facility inspection support apparatus
US20120185794A1 (en) Method and Apparatus for Managing Buttons on Taskbar
CN105867962A (zh) 系统升级的方法和装置
KR101395442B1 (ko) 어플리케이션의 실행을 제어하는 링키지 어플리케이션 컨트롤 시스템 및 방법
US20190121786A1 (en) Method for Data Migration and Terminal
CN103838589A (zh) 一种插件删除、恢复方法及客户端
CN114064174B (zh) 一种页面控制的方法、装置及存储介质
CN111552595A (zh) 数据库备份与恢复方法、装置和设备
CN108681494B (zh) 备份数据还原方法、装置、用户设备及存储介质
CN114138408B (zh) 克隆卷创建的方法、装置、计算机设备和存储介质
CN103995842B (zh) 文件删除方法及系统
CN109521924B (zh) 一种辅助用户选择目标应用的方法和装置
CN109088977B (zh) 一种自动安装移动终端应用的控制方法及控制装置
CN111858191A (zh) 一种双活存储控制方法、装置、设备及存储介质
CN110795389A (zh) 基于存储快照的拷贝方法、用户设备、存储介质及装置
CN107273217B (zh) 一种信息显示方法、装置及终端设备
CN112306745A (zh) 一种备份方法及装置、存储介质
CN111078374A (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
TA01 Transfer of patent application right

Effective date of registration: 20240130

Address after: Room 102, floor 1, building 1, No. 2, Chuangye Road, Haidian District, Beijing 100085

Applicant after: Seashell Housing (Beijing) Technology Co.,Ltd.

Country or region after: China

Address before: 101399 room 24, 62 Farm Road, Erjie village, Yangzhen, Shunyi District, Beijing

Applicant before: Beijing fangjianghu Technology Co.,Ltd.

Country or region before: China

TA01 Transfer of patent application right
GR01 Patent grant
GR01 Patent grant