fixNavigation
- 在国内开发可能希望每次使用
navigation
时候 不会希望每次都是调用replace
(创建并销毁的方式 )去切换navigation
,开销很大。查了诸多资料和源码。根据现有的资源弄了一个符合组件化开发的fixNavigation
。
Activity
在不同组件中多个 navigation
的使用
支持组件化。多个 Gradle
依赖
添加
dependencies {
implementation 'com.github.AGouLiu.fixNavigation:nav_api:latestVersion'
annotationProcessor 'com.github.AGouLiu.fixNavigation:nav_compiler:latestVersion'
//kapt
kapt 'com.github.AGouLiu.fixNavigation:nav_compiler:latestVersion'
}
使用
- 在组建中添加注解
-
asStarter
代表是否是第一个进入的home页面 每个navigation
只有一个值是true
-
编译后产物
- 根据产物进行初始化
navigation
,在app
下有示例
NavGraphBuilder.build(this, navController!!, this, fragment.id, MainNavConfig,"fixnavigation_destination.json")
// Passing each menu ID as a set of Ids because each
// menu should be considered as top level destinations.
NavigationUI.setupWithNavController(bottomBar, navController!!)
- 在没有添加
bottomBar
情况 根据url
方式跳转
findNavController().navigate(
StudentOrderNavConfig.getDestIDFromUrl(
RxTool.getContext(),
"main/tabs/DashboardFragment",
"fixnavigation_destination.json"
), args
)