NavigationUI类的用途是什么?NavController新手寻求清晰讲解
NavigationUI 的核心价值就是把导航组件(NavController)和 Android 原生 UI 组件做绑定,彻底省去你手动同步导航状态与 UI 状态的重复代码,主要作用集中在这几个方面:
自动绑定导航类 UI 组件:比如 BottomNavigationView、NavigationView(侧边栏菜单)这类用于切换页面的组件,你不用给每个菜单项写点击事件、不用手动维护选中状态。只需要一行代码把它们和 NavController 绑定,NavigationUI 会自动匹配导航图里的目的地 ID,点击菜单项直接跳转,还会自动更新选中状态、处理返回栈逻辑。
示例代码:NavigationUI.setupWithNavController(bottomNavigationView, navController)接管 Toolbar/ActionBar 的导航逻辑:自动给 Toolbar 设置返回箭头(对应导航栈的向上操作)、同步当前目的地的标题到 Toolbar、处理 DrawerLayout 的汉堡菜单切换。不用你手动写
setDisplayHomeAsUpEnabled(true),也不用在onSupportNavigateUp()里处理返回逻辑,这些 NavigationUI 都帮你搞定。同步返回栈与 UI 状态:当你通过返回键、导航动作弹出返回栈时,NavigationUI 会自动更新对应的菜单选中项、Toolbar 标题等 UI 元素,保证 UI 始终和当前导航状态一致,不用你手动做状态同步。
联动深层链接导航:如果通过深层链接打开某个页面,NavigationUI 会自动更新对应的菜单选中状态,确保用户能从 UI 上直观看到当前所在的导航位置,不用额外写逻辑处理这种场景。
内容的提问来源于stack exchange,提问作者Danwolve

