共计 2368 个字符,预计需要花费 6 分钟才能阅读完成。
Android Jetpack Navigation 根本应用
本篇次要介绍一下 Android Jetpack 组件 Navigation 导航组件的 根本应用
当看到 Navigation 单词的时候 应该就大略晓得 这是一个对于导航用的,上面我来简略介绍一下 如何应用 Navigation 组件的根本应用流程,并且一步步 实际操作一番 Navigation,下图是案例,实现登录到详情的跳转
1.Navigation 基本概念
Navigation 是一个 Jetpack 组件 反对用户导航,用于在 Android 利用中的“指标”之间进行导航,无论 指标是 Fragment,Activity 还是其余组件。
导航组件由以下三个要害局部组成:
- 导航图:在一个集中地位蕴含所有导航相干信息的 XML 资源。这包含利用内所有单个内容区域(称为 指标)以及用户能够通过利用获取的可能门路。
NavHost
:显示导航图中指标的空白容器。导航组件蕴含一个默认NavHost
实现 (NavHostFragment
),可显示 Fragment 指标。NavController
:在NavHost
中治理利用导航的对象。当用户在整个利用中挪动时,NavController
会安顿NavHost
中指标内容的替换。
简略点 上面间接来操作一下 来体验一下 Navigation 的应用流程
2.Navigation 应用入门
2.1 增加 Navigation 依赖
简略点 只须要设置 navigation-fragment 和 navigation-ui 即可
dependencies {
def nav_version = "2.4.2"
// Java language implementation
implementation "androidx.navigation:navigation-fragment:$nav_version"
implementation "androidx.navigation:navigation-ui:$nav_version"
// Kotlin
implementation "androidx.navigation:navigation-fragment-ktx:$nav_version"
implementation "androidx.navigation:navigation-ui-ktx:$nav_version"
// Feature module Support
implementation "androidx.navigation:navigation-dynamic-features-fragment:$nav_version"
// Testing Navigation
androidTestImplementation "androidx.navigation:navigation-testing:$nav_version"
// Jetpack Compose Integration
implementation "androidx.navigation:navigation-compose:$nav_version"
}
2.2 创立导航图
导航图是一种资源文件,其中蕴含您的所有目的地和操作。该图表会显示利用的所有导航门路。
向我的项目增加导航图,请执行以下操作:
- 在“Project”窗口中,右键点击
res
目录,而后顺次抉择 New > Android Resource File。此时零碎会显示 New Resource File 对话框。 - 在 File name 字段中输出名称,例如“nav_graph”。
- 从 Resource type 下拉列表中抉择 Navigation,而后点击 OK。
当您增加首个导航图时,Android Studio 会在 res
目录内创立一个 navigation
资源目录。该目录蕴含您的导航图资源文件(例如 nav_graph.xml
)。
新建实现后 就主动 在 res 上面生成 navigation 目录,外面寄存下面新建的 导航图
2.3 导航图中增加目的地 Fragment
点击下面的菜单 + 就能够新建 destination 了
新建了 2 个 fragment,一个是 loginFragment 一个是 welcomeFragment
把他们两个连起来 从 loginFragment 到 welcomeFragment,会主动生成一个 action
顺便略微丑化一下 loginFragment 和 welcomeFragment
2.4 Activity 增加 NavHost
导航宿主 NavHost 是 Navigation 组件的外围局部之一。导航宿主是一个空容器,用户在您的利用中导航时,目的地会在该容器中替换进出。
导航组件蕴含一个默认 NavHost
实现 (NavHostFragment
上面在 MainActivity 中增加一个 NavHostFragment
拖入 Activity 中 它会主动展现出可用的 Navigation Graph 导航图,就是下面创立的 my_nav_graph,抉择它即可
2.5 LoginFragment 代码编写
navController.navigate(R.id.action_loginFragment_to_welcomeFragment,bundle);
外围代码如下,就是获取 输出的用户名和明码 并且携带用户名 导航到 welcomeFragment
2.6 welcomeFragment 代码编写
很简略就是把 loginFragment 传入的参数 username 获取到 展现在 TextView 上即可
留神:通过 getArguments() 去获取 Bundle 的参数
最终成果如下:
总结
本篇次要简略介绍了一下 Navigation 是什么 以及应用它的流程是什么,并且结合实际案例 操作了一番,Navigation 还有很多其余用法,如条件导航、嵌套图、适度动画 等等性能 有机会再操作
欢送大家拜访 集体博客 Johnny 小屋