要获取Android NavController的返回栈,可以使用以下代码示例:
// 获取NavController
NavController navController = Navigation.findNavController(this, R.id.nav_host_fragment);
// 获取返回栈
NavBackStackEntry backStackEntry = navController.getBackStackEntry(navController.getGraph().getId());
// 获取返回栈中的目的地列表
List destinationList = backStackEntry.getDestination().getParent().getChildren();
for (NavDestination destination : destinationList) {
// 打印目的地的ID和标签
Log.d("Destination", "ID: " + destination.getId() + ", Label: " + destination.getLabel());
}
上述代码中,首先通过Navigation.findNavController()
方法获取NavController实例。然后使用getBackStackEntry()
方法获取返回栈中的条目。接着,通过getDestination()
方法获取返回栈的目的地,再使用getParent()
方法获取父目的地,最后使用getChildren()
方法获取目的地列表。可以遍历该列表,获取每个目的地的ID和标签。
注意,上述代码需要在Fragment或Activity中执行,需要传入相应的上下文和导航宿主Fragment的ID(例如R.id.nav_host_fragment
),以便正确获取NavController实例。