第154篇 Navigation 组件:单 Activity 架构的路由方案
先把结论放在前面:Navigation 组件的核心是三件事——NavController管理一个目的地栈(back stack)、NavHostFragment负责在容器里替换内容、转场动画由框架统一维护(不复用 Activity 跳转动画)。 围绕这三件事,最值得答的细节在于"栈里存的是什么"——存的是 Fragment 实例(Navigator用replace()换 Fragment)还是FragmentTransaction的记录**。答案直接决定了后面所有坑位的成因。这题的"细节答对就是加分项"体现在:知道navigate()的默认行为是popUpTo = 当前 destination(也就是"出栈再入栈")、知道launchSingleTop与restoreState的差别、知道深链的 pending intent 何时被消费。这三条是绝大多数人答不出来的。返回栈:里面究竟存了什么NavController内部维护NavBackStackEntry列表,每个 entry 记录:destination(目的地 id 与配置)、arguments(Bundle)、