Android Navigation文档中的"chrome"具体指代什么?
Android开发场景下chrome的准确定义
先澄清最容易混淆的点:这里的chrome和Google Chrome浏览器没有任何关系,是界面开发领域的通用术语,在Jetpack Navigation相关文档里,它的定义非常明确:
应用界面里环绕核心内容区、属于应用外壳层级的固定UI部分,这类UI不承载单个页面的专属业务内容,主要承担全局导航、全局操作入口、状态提示的作用。
结合你提到的两处文档描述,可以更直观理解:
- 对
NavHostFragment的描述里提到的chrome:NavHostFragment本身是承载各个导航页面实际内容的容器,布局里写在这个容器外围、不属于具体页面内容的外层UI,就是应用的chrome部分。 - 对
NavigationUI的描述里提到的chrome:这个类就是专门用来给chrome区域的全局导航组件和导航控制器做绑定的,能自动同步导航状态。日常开发中常见的chrome组件包括:- 全局固定的顶部Toolbar/ActionBar
- 底部导航栏
- 侧边滑动导航抽屉
- 跨页面常驻的顶部Tab导航栏
给你一个最简单的判断标准:切换NavHostFragment里加载的页面时,如果一个UI不会跟着页面内容被替换,始终作为外层框架存在,它就属于chrome。比如单个内容页自己写的页面内标题、页面内的功能按钮属于内容区,不算chrome;但跨页面存在的外层框架类UI,全部都算chrome的组成部分。
内容的提问来源于stack exchange,提问作者Jun
相关产品推荐
相关产品推荐

