主要是在使用NavController去调用navigate方法之前,先判断已加载的Fragment栈栈顶的Fragment id是否时当前所需要加载的id,如果是,则不需要重复添加,如果不是则需要将当前Fragment id(包含) 之上的Fragment弹出栈再进行加载。
if (navController.currentDestination?.id != resID) {
// param inclusive = true means is pop stack contains resID self
navController.popBackStack(resID, true)
navController.navigate(resID)
}