|
|
|
@ -13,8 +13,6 @@ import androidx.navigation.*
|
|
|
|
|
* @CreateDate: 2021/8/27 10:06
|
|
|
|
|
*/
|
|
|
|
|
object NavigationUtil {
|
|
|
|
|
var currentScreen: ModelPath? by mutableStateOf(ModelPath.Home)
|
|
|
|
|
val navList = mutableStateListOf(currentScreen)
|
|
|
|
|
|
|
|
|
|
@SuppressLint("StaticFieldLeak")
|
|
|
|
|
lateinit var navHostController: NavHostController
|
|
|
|
@ -23,18 +21,14 @@ object NavigationUtil {
|
|
|
|
|
* 跳转到某个页面
|
|
|
|
|
*/
|
|
|
|
|
fun to(screenName: ModelPath) {
|
|
|
|
|
currentScreen = screenName
|
|
|
|
|
navHostController.navigate(screenName.route)
|
|
|
|
|
navList.add(screenName)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 跳转到某个页面带参数
|
|
|
|
|
*/
|
|
|
|
|
fun toBundle(screenName: ModelPath, bundle: Bundle) {
|
|
|
|
|
currentScreen = screenName
|
|
|
|
|
navHostController.navigate(screenName.route, bundle)
|
|
|
|
|
navList.add(screenName)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private fun NavController.navigate(
|
|
|
|
@ -56,19 +50,4 @@ object NavigationUtil {
|
|
|
|
|
navigate(route, navOptions, navigatorExtras)
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 返回到上一页
|
|
|
|
|
*/
|
|
|
|
|
fun backAndReturnsIsLastPage(): Boolean {
|
|
|
|
|
return if (navList.size == 1) {
|
|
|
|
|
//当前是最后一页了,返回true
|
|
|
|
|
true
|
|
|
|
|
} else {
|
|
|
|
|
navList.removeLast()
|
|
|
|
|
currentScreen = navList.last()
|
|
|
|
|
navHostController.navigateUp()
|
|
|
|
|
false
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|