Skip to content

Commit

Permalink
update readme
Browse files Browse the repository at this point in the history
  • Loading branch information
lwj1994 committed Feb 26, 2021
1 parent 2aaa216 commit f0c861b
Show file tree
Hide file tree
Showing 2 changed files with 9 additions and 9 deletions.
12 changes: 6 additions & 6 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,26 +4,26 @@

因为 google 的 navigation 使用 `FragmenManager.replace()` 来切换 fragment 导致上一个 fragment 会销毁,返回时重走 `onCreateView` 等生命周期,用户体验极差。

* 使用 add fragment 代替 replace,并且在转场动画结束时,对上个页面进行 hide,避免多个 Fragment 的过度绘制
* 优化了转场动画,内部自定义实现了 fragment 的转场动画。Fragment 的原生转场动画有些许不好用。drakeet 大佬也提到过部分场景 Fragment 的转场会卡顿。
* 使用 `add/hide fragment` 代替 `replace`,并且在转场动画结束时,对上个页面进行 `hide`,避免多个 `Fragment` 的过度绘制
* 优化了转场动画,内部使用 `IdeHandler` 自定义实现了 `fragment` 的转场动画。Fragment 的原生转场动画有些许不好用。drakeet 大佬也提到过部分场景 Fragment 的转场会卡顿。
* 内部使用 `setMaxLifecycle``hide` 状态的 Fragment 重置生命周期为 `onPause`

## 使用方法

### 1. 在项目根目录的 build.gradle 添加 maven 仓库
```
allprojects {
repositories {
maven {
url 'https://dl.bintray.com/wenchieh/maven'
}
maven { url 'https://jitpack.io' }
}
}
```

### 2.在项目的 build.gradle 添加依赖
```
// 将谷歌原生的 "androidx.navigation:navigation-fragment:navigation" 注释掉换成下面的依赖
implementation 'com.lwjlol:navigation-fragment:${latestVersion}'
implementation 'com.github.lwj1994:navigation-keep-state-fragment:${latestVersion}'
// 如果依赖了 navigation-fragment-ktx 使用的时候需要把谷歌的 `androidx.navigation.fragment` 包名的代码剔除。
implementation("androidx.navigation:navigation-fragment-ktx:${Versions.navigation}"){
Expand Down
6 changes: 3 additions & 3 deletions navigation-fragment/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -41,10 +41,10 @@ dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
implementation 'androidx.appcompat:appcompat:1.0.2'
implementation 'androidx.core:core-ktx:1.0.2'
implementation 'androidx.core:core-ktx:1.3.2'

implementation "androidx.navigation:navigation-ui-ktx:2.3.2"
implementation "androidx.fragment:fragment-ktx:1.3.0-rc01"
implementation "androidx.navigation:navigation-ui-ktx:2.3.3"
implementation "androidx.fragment:fragment-ktx:1.2.5"

testImplementation 'junit:junit:4.12'
androidTestImplementation 'androidx.test:runner:1.2.0'
Expand Down

0 comments on commit f0c861b

Please sign in to comment.