在Android开发中,"导航栏"通常指以下几个核心概念:
1. 系统导航栏(System Navigation Bar)
位于屏幕底部的系统级控件,包含返回键、主页键和多任务键(或全面屏手势区域)。从Android 10开始采用手势导航替代传统三键式设计。
开发时需注意处理`WindowInsets`避免内容遮挡,可通过`setSystemUiVisibility()`或`WindowCompat.setDecorFitsSystemWindows()`进行适配。
2. 应用内导航组件(Navigation Component)
Jetpack组件库中的导航架构,包含:
- `NavHostFragment`:导航容器
- `NavController`:导航逻辑控制
- 导航图(XML资源文件)定义Fragment间跳转关系
支持深层链接、动画过渡和类型安全的参数传递(Safe Args)。
3. Material Design导式
底部导航栏(BottomNavigationView):适合3-5个主要模块切换
导航抽屉(NavigationView):配合DrawerLayout实现侧滑菜单
顶部标签栏(TabLayout+ViewPager2):同类内容分页浏览
需遵循《Material 3设计指南》的交互规范和视觉样式。
4. 技术实现要点
处理生命周期:使用`SavedStateHandle`保存导航状态
深度链接配置:通过`
过渡动画:使用`NavOptions`或`FragmentNavigator.Extras`
多模块导航:应用Deeplink+隐式Intent解耦模块依赖。
5. 适配注意事项
全面屏手势冲突:禁用边缘手势区域(`gestureNavbarFlag`)
异形屏规避:结合`DisplayCutout`API调整布局
折叠屏适配:`OnBackPressedDispatcher`处理分屏状态。
现代Android导航体系已形成"系统导航+应用内导航+跨设备导航"的三层架构,开发者应同时关注Navigation Advance组件、Compose导航库(`NavHost`)以及跨设备导航(Google Nearby Share)等新特性。Material 3新引入的导航栏高度动态调整(从80dp到128dp可变)和形状变化(圆角矩形胶囊样式)需要特别适配。