广告
返回顶部
首页 > 资讯 > 移动开发 >Android Jetpack(六)Navigation
  • 815
分享到

Android Jetpack(六)Navigation

Android 2022-06-06 12:06:56 815人浏览 八月长安
摘要

一、Navigation 介绍                 Navigation 是 Jetpack 组件库的一个组件,可以方便的管理 Fragment ,可以看作是针对于

一、Navigation 介绍        

        Navigation 是 Jetpack 组件库的一个组件,可以方便的管理 Fragment ,可以看作是针对于 Fragment 的路由。 功能主要是:用于管理 APP 页面跳转导航,同时,切换 Fragment 变得更加直观,通过可视化界面展示 Fragment 的切换流程图。

        利用 Navigation 组件对 Fragment 的原生支持,可以获得架构组件的所有好处(例如生命周期和 ViewModel),同时让此组件来处理 FragmentTransaction 的复杂性。此外,Navigation 组件还可以处理转场动画。它可以自动构建正确的“向上”和“返回”行为,包含对深层链接的完整支持,并提供了帮助程序,用于将导航关联到合适的 UI 小部件,例如抽屉式导航栏和底部导航。

        除此之外,Navigation 最大的一个好处是:让单 Activity 应用成为首选架构(即:单 Activity + 多 Fragment。应用内  Fragment 页面的跳转则由 Navigation 来处理,开发者无需在处理 FragmentTransaction 的复杂性以及相关的转场动画。

二、Navigation 核心概念 NavGraph:导航图,一个 XML 资源,它包含集中在一个位置上的所有与导航相关的信息。这包括所有单独的内容区域(destination),以及用户可以通过应用程序访问的可能路径。就类似一个流程图,如下图。 NavHost:显示导航图中的 Destination 的容器。导航组件包含一个默认的 NavHost 实现 NavHostFragment。 NavController: 控制 NavHost 容器内容的切换的控制器Destination:目的片段,一般是 Fragment (由于 Google 推荐单 Activity 模式 APP),也可以是 Activity。如下图的三个界面。 Action:动作,就相当于 intent,表示从一个 Destination 到另一个 Destination,如下图的箭头。

        

         

三、Navigation 使用

1. 导入依赖库

implementation 'Androidx.navigation:navigation-fragment:2.2.1'
implementation 'androidx.navigation:navigation-ui:2.2.1'

2. 创建一个Activity和多个Fragment

        按照业务逻辑创建,假设创建了MainActivity、FragmentA、FragmentB。

3. 新建 Navigation

res
目录右键 New->New Resource File,弹出
New Resource File
的对话框 填写 File Name 如:nav_graph,Resource type 选择
Navigation
,点击OK

4. 使用 Navigation

        打开

nav_graph.xml
,底部选择 Design 选项卡,点击
New Destination
(左上角 + ) 按钮,在弹窗中选择
fragment_a.xml
fragment_b.xml;

        或选择

Create blank destination
新建 Fragment 之后选显示如下界面:

        

6. 添加 Action 

        左键按住 fragment 右侧中间的圆圈然后拖动到要导航的 fragment 然后松手。

        

Enter 进入一个目的地 (例如 A跳B, B显示时执行的动画) Exit 退出一个目的地 (例如 A跳B,A隐藏时执行的动画) Pop Enter通过 pop 操作进入目的地 (例如 A跳B,B navigateUp 后 A再次出现时执行的动画) Pop Exit 通过pop 操作退出目的地 (例如 A跳B,B navigateUp 后 B消失时执行的是这个动画)
作者:Fighting_初心


--结束END--

本文标题: Android Jetpack(六)Navigation

本文链接: https://www.lsjlt.com/news/28512.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作