😽

Navigation Compose, popBackStackの連続呼び出ししてもStackを空にしない方法

2024/06/13に公開

currentBackStackEntryのrouteで判断する
比較している"top"はNavHostのstartDestinationに設定した値

if (navController.currentBackStackEntry?.destination?.route != "top") {
    navController.popBackStack()
}

拡張関数ならこんな感じにする

import androidx.navigation.NavController

fun NavController.safePopBackStack() {
    if (this.currentBackStackEntry?.destination?.route != "top") {
        this.popBackStack()
    }
}

*routeを使わないもっと良い方法があれば教えてください

Discussion