Navigation
是一种导航的概念,即把Activity
和fragment
当成一个个的目的地Destination
,各目的地形成一张导航图NavGraph
,由导航控制器NavController
来统一调度跳转,本文会先简单分析下AS自带的示例代码。
Jetpack笔记代码
本文源码基于SDK 29
,IDE是Android studio 3.5.3
使用
创建工程,引入依赖,
implementation 'androidx.navigation:navigation-fragment:2.2.2'
implementation 'androidx.navigation:navigation-ui:2.2.2'
然后new activity
,选中bottom navigation activity
,IDE会创建出3个fragment和viewModel,1个activity和布局文件,1个菜单文件bottom_nav_menu
,1个导航图文件mobile_navigation
,运行如下:
![a557c738bd2a08cbdb9db9791335ec28.png](https://i-blog.csdnimg.cn/blog_migrate/a27c5bf67c86fe5eeea150526355c7a7.jpeg)
先看下布局文件,
<androidx.constraintlayout.widget.ConstraintLayout>
<!-- 底部的导航view,菜单文件里定义了3个item -->
<com.google.android.material.bottomnavigation.BottomNavigationView
android:id="@+id/nav_view"
app:menu="@menu/bottom_nav_menu" />
<!-- fragment作为页面容器,navGraph指定了导航图的结构 -->
<fragment
android:id="@+id/nav_host_fragment"
android:name="androidx.navigation.fragment.NavHostF