shiablue / fixNavigation

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

fixNavigation

  • 在国内开发可能希望每次使用 navigation 时候 不会希望每次都是调用 replace (创建并销毁的方式 )去切换 navigation,开销很大。查了诸多资料和源码。根据现有的资源弄了一个符合组件化开发的 fixNavigation

支持组件化。多个 Activity 在不同组件中多个 navigation 的使用

添加 Gradle 依赖

  • maven { url 'https://jitpack.io' } 加入到 repositories 中
  • 添加如下依赖,末尾的「latestVersion」 Download里的版本名称,请自行替换。
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'
}

使用

  • 在组建中添加注解

image

  • asStarter 代表是否是第一个进入的home页面 每个 navigation 只有一个值是 true

  • 编译后产物

image

  • 根据产物进行初始化 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
            )

About

License:Apache License 2.0


Languages

Language:Kotlin 96.9%Language:Java 3.1%