一种基于Android系统的主菜单导航方法与流程

文档序号:13767444阅读:288来源:国知局

本发明涉及通讯技术领域,尤其涉及一种基于Android系统的主菜单的导航方法。



背景技术:

随着移动客户端的广泛应用,复杂的业务操作从web、PC转移到移动客户端,譬如中小企业的业务系统、信息管理系统等复杂操作,多类信息在不同页面同时浏览的需求日益迫切。

而现今Android系统的APP菜单导航绝大部分通过主界面的主菜单提供几个页签来切换导航,通过对页签的点击或者滑动等动作跳转下一个页面(Activity),新出现的页面覆盖在前一页面上方,在新页面上再次操作,又将创建新页面覆盖在上方,依次重复。此时如果用户需要切换到其他页签,需要一层层返回,回到主菜单,才能切换到其他页签,而用户之前的操作结果在一次次返回中被销毁。或现有的是在每个页面放置一个退回到主菜单的入口,如按钮等,纵然如此,也是界面复杂,层次不清。也有使用Android特性Fragement组件嵌套的案例,但是在运行期间,内存只增不减。



技术实现要素:

本发明要解决的技术问题,在于提供一种基于Android系统的主菜单导航方法,实现了基于Android平台的中大型业务系统的客户端提供菜单一直在底部导航,保存的操作结果能很好体现的方法,提高了客户的体验度,且用户操作简单。

本发明是这样实现的:一种基于Android系统的主菜单导航方法,所述方法包括如下步骤:

步骤1、布局主菜单的主界面:

根据需要构建上中下三部分的主界面,上方主界面放置标题和多个按钮,中间主界面为内容部分,下方主界面为主菜单导航栏;中间主界面内容部分根据主菜单的页签,分别用Fragment组件进行填充;

步骤2、呈现新界面:

用户点击任意一个页签,创建顶级界面,根据用户每次点击,打开一个个新界面;每个新界面是一个fragment组件,在Fragment组件布局的最后设置一个透明的框架布局FrameLayout;当第N+1个新界面创建时,放入第N个界面的透明的框架布局FrameLayout中,呈现给用户最新的界面;

步骤3、返回前一界面和销毁新界面:

如果用户点击返回,将从第N个界面的框架布局FrameLayout中移出并销毁,就呈现给用户前一个界面,并释放内存;重复第2步和第3步,得到前一个界面的页签的最新操作结果。

进一步的,所述方法中还包括界面的页签间切换操作,该操作具体为:在不改变前一页签的操作结果的前提下,用户点击其他页签,则重复所述第2步骤和第3步骤,能得到一组操作的结果,如此在页签间切换时,即能看到每个页签操作的最新结果。

进一步的,所述步骤1具体进一步包括:

步骤11、创建界面基类BaseActionbarActivity,继承AppCompatActivity类,实现自定义接口IActivityInit;接口IActivityInit定义了一系列界面需要实现的操作,所述操作包括:在设置显示界面setContentView之前进行操作、设置布局、初始化界面控件以及初始化界面数据;

步骤12、创建主界面MainActivity,继承BaseActionbarActivity类;主菜单布局分为上中下三部分;

步骤13、通过AppCompatActivity类中的ActionBar工具,实现上方主界面的标题和多个按钮,接受动态设置标题和按钮;

步骤14、在界面布局Layout中放置一个框架布局FrameLayout作为内容容器,设id为contentLayout,后续所有的显示内容将填充到该布局Layout中;

步骤15、在布局Layout中设置导航栏,导航栏置于布局的最下方;设置多个页签,点击页签,利用布局的FragmentManager中beginTransaction()函数获取类型FragmentTransaction,在顶级Fragment组件之间切换,改变contentLayout中的内容。

进一步的,所述步骤2具体进一步包括:

创建多个Fragment组件:

步骤21、创建基类BaseFragment,继承Fragment组件,实现自定义接口IFragmentInit,接口IFragmentInit定义了一系列界面需要实现的接口,与接口IActivityInit类似,还包含了统一的Toast管理;该接口实现Fragement界面间跳转、界面返回的功能,完成新界面实例创建和销毁工作;

步骤22、根据业务需求,创建一系列的Fragement组件,全部继承BaseFragment类,每个布局文件创建了具体的内容布局后,在最后创建一个透明的框架布局FrameLayout,宽和高都设置为属性值fill_parent,透明的框架布局FrameLayout将作为新界面的容器,这是实现页面嵌套的关键之一。

进一步的,所述方法能实现界面间跳转,具体为:

在第N级界面,用户点击该界面的条目、图片或按钮,打开新的界面,第N+1级界面;

在第N级界面ListFragment,采用getChildFragmentManager()获取FragmentManager;

利用FragmentManager的beginTransaction()获取FragmentTransaction,通过replace(intcontainerViewId,Fragmentfragment)函数,把第N+1级界面deviceFragement替换到第N级界面listFragement布局中的透明布局transparentFramelayout;

利用FragmentTransaction的show()和commitAllowingStateLoss()函数,向用户呈现新界面内容。

进一步的,所述方法中实现界面返回,具体为:

在第N级界面ListFragment,采用getChildFragmentManager()函数获取布局中的FragmentManager,利用FragmentManager中beginTransaction()函数获取类型FragmentTransaction;

利用beginTransaction()获取类型FragmentTransaction;使用FragmentTransaction中的方法remove(Fragmentfragment)移除第N+1级界面deviceFragement,被移除的界面deviceFragement不再被引用,回收销毁,释放内存;

利用FragmentTransaction的commitAllowingStateLoss()函数实现剩下透明布局transparentFramelayout,从而实现返回的界面效果。

进一步的,所述页签间切换操作具体进一步为:

在主界面初始化时创建ListFragment、AreaFragment、ScenceFragment、MoreFragment的实例;采用getSupportFragmentManager()函数获取布局的FragmentManager,利用beginTransaction()函数获取类型FragmentTransaction,把实例添加到FragmentTransaction中,通过show,切换页签;每个页签呈现该页签最新的界面结果。

本发明具有如下优点:本发明通过布局主菜单的主界面;再进行呈现新界面;再进行返回前一界面和销毁新界面的操作;从而实现Android系统的主菜单导航的方式。本发明实现了基于Android平台的中大型业务系统的客户端提供菜单一直在底部导航,保存的操作结果能很好体现的方法,提高了客户的体验度,且用户操作简单。

附图说明

图1为本发明方法流程示意图。

具体实施方式

请参阅图1所示,本发明的一种基于Android系统的主菜单导航方法,其特征在于:所述方法包括如下步骤:

步骤1、布局主菜单的主界面:

根据需要构建上中下三部分的主界面,上方主界面放置标题和多个按钮,中间主界面为内容部分,下方主界面为主菜单导航栏;中间主界面内容部分根据主菜单的页签,分别用Fragment组件进行填充;

步骤2、呈现新界面:

用户点击任意一个页签,创建顶级界面,根据用户每次点击,打开一个个新界面;每个新界面是一个fragment组件,在Fragment组件布局的最后设置一个透明的FrameLayout;当第N+1个新界面创建时,放入第N个界面的透明的FrameLayout中,呈现给用户最新的界面;

步骤3、返回前一界面和销毁新界面:

如果用户点击返回,将从第N个界面的FrameLayout中移出并销毁,就呈现给用户前一个界面(即前一个界面为N-1),并释放内存;重复第2步和第3步,得到该页签的最新操作结果。

所述方法中还包括界面的页签间切换操作,该操作具体为:在不改变前一页签的操作结果的前提下,用户点击其他页签,则重复所述第2步骤和第3步骤,能得到一组操作的结果,如此在页签间切换时,即能看到每个页签操作的最新结果,即完成页签切换操作过程。

所述步骤1具体进一步包括:

步骤11、创建界面基类BaseActionbarActivity,继承AppCompatActivity类,实现自定义接口IActivityInit;接口IActivityInit定义了一系列界面需要实现的操作,所述操作包括:在设置显示界面setContentView之前进行操作、设置布局、初始化界面控件以及初始化界面数据;

步骤12、创建主界面MainActivity,继承BaseActionbarActivity类;主菜单布局分为上中下三部分;

步骤13、通过AppCompatActivity类中的ActionBar工具,实现上方主界面的标题和多个按钮,接受动态设置标题和按钮;

步骤14、在界面布局Layout中放置一个框架布局FrameLayout作为内容容器,设id为contentLayout,后续所有的显示内容将填充到该布局Layout中;

步骤15、在布局Layout中设置导航栏,导航栏置于布局的最下方;设置多个页签,点击页签,利用布局的FragmentManager中beginTransaction()函数获取类型FragmentTransaction,在顶级Fragment组件之间切换,改变contentLayout中的内容。

所述步骤2具体进一步包括:

创建多个Fragment组件:

步骤21、创建基类BaseFragment,继承Fragment组件,实现自定义接口IFragmentInit,接口IFragmentInit定义了一系列界面需要实现的接口,与接口IActivityInit类似,还包含了统一的Toast管理;该接口实现Fragement界面间跳转、界面返回的功能,完成新界面实例创建和销毁工作;

步骤22、根据业务需求,创建一系列的Fragement组件,全部继承BaseFragment类,每个布局文件创建了具体的内容布局后,在最后创建一个透明的框架布局FrameLayout,宽和高都设置为属性值fill_parent,透明的框架布局FrameLayout将作为新界面的容器,这是实现页面嵌套的关键之一。

所述方法能实现界面间跳转,具体为:

在第N级界面,用户点击该界面的条目、图片或按钮,打开新的界面,第N+1级界面;在实际应用中,譬如ListFragment的一个实例listFragement(显示设备列表),点击一条目(一个设备),创建DeviceFragment的一个实例deviceFragement(显示设备详细信息)。

在第N级界面ListFragment,采用getChildFragmentManager()获取FragmentManager;而不是采用getFragmentManager()获取FragmentManager。这是页面嵌套的关键之一,将解决及时释放内存的问题。

利用FragmentManager的beginTransaction()获取FragmentTransaction,通过replace(intcontainerViewId,Fragmentfragment)函数,把第N+1级界面deviceFragement替换到第N级界面listFragement布局中的透明布局transparentFramelayout;

利用FragmentTransaction的show()和commitAllowingStateLoss()函数,向用户呈现新界面内容。

所述方法中实现界面返回,具体为:

在第N级界面ListFragment,采用getChildFragmentManager()函数获取布局中的FragmentManager,利用FragmentManager中beginTransaction()函数获取类型FragmentTransaction;

利用beginTransaction()获取类型FragmentTransaction;使用FragmentTransaction中的方法remove(Fragmentfragment)移除第N+1级界面deviceFragement,被移除的界面deviceFragement不再被引用,回收销毁,释放内存;

利用FragmentTransaction的commitAllowingStateLoss()函数实现剩下透明布局transparentFramelayout,从而实现返回的界面效果。

所述页签间切换操作具体进一步为:

在主界面初始化时创建ListFragment、AreaFragment、ScenceFragment、MoreFragment的实例;采用getSupportFragmentManager()函数获取布局的FragmentManager,利用beginTransaction()函数获取类型FragmentTransaction,把实例添加到FragmentTransaction中,通过show,切换页签;每个页签呈现该页签最新的界面结果。

总之,本发明通过布局主菜单的主界面;再进行呈现新界面;再进行返回前一界面和销毁新界面的操作;从而实现Android系统的主菜单导航的方式。本发明实现了基于Android平台的中大型业务系统的客户端提供菜单一直在底部导航,保存的操作结果能很好体现的方法,提高了客户的体验度,且用户操作简单。

以上所述仅为本发明的较佳实施例,凡依本发明申请专利范围所做的均等变化与修饰,皆应属本发明的涵盖范围。

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