1. 基本信息
| 项目 | 内容 |
|---|---|
| 名称 | navigation-event-android-skills |
| 作者/维护者 | Google LLC |
| 来源链接 | https://github.com/android/skills/tree/main/navigation/navigation-event |
| 许可证 | Apache License 2.0(数据来自 GitHub API) |
| GitHub Stars | 所属合集仓库 android/skills 整体 7,319(数据来自 GitHub API;该数字属整个合集,不代表本技能自身热度) |
| Forks | 477(同上,属合集整体数字) |
| 最新版本 | SKILL.md 标注 last-updated 2026-09-01 |
| 安装方式 | Android CLI 一条命令,或手动复制目录到 Agent 技能目录 |
2. 功能介绍与亮点
- 基于 Google 官方新库
androidx.navigationevent(正式版 1.0.0,非预发布),指导在 Jetpack Compose Android 应用中拦截系统返回手势并实现「预测式返回」(Predictive Back)动画。 - 按 5 个步骤组织:识别目标平台与 SDK 版本 → 声明依赖 → 配置 dispatcher 与输入源 → 实现返回处理与 UI 过渡动画 → 清理资源,每步均给出具体检查项与官方参考文档链接。
- 附「核心排障指南」四个常见错误场景(Activity dispatcher 递归崩溃、Dialog 场景重复包裹、ViewPager 父子 dispatcher 未正确关联、同一状态重复绑定处理器导致运行时异常),每条都配 RIGHT/WRONG 对照 Kotlin 代码示例,直接命中实际开发中最容易踩的坑。
- 明确覆盖从旧版
BackHandler/OnBackPressedCallback迁移到新版NavigationBackHandler的场景,并给出与 Navigation 3 库的边界(若项目已用 Navigation 3,应优先用其内置返回支持而非本技能的底层 dispatcher)。 - 末尾附完整 Checklist,覆盖 SDK 版本、AndroidManifest 配置、dispatcher 归属、去重注册等全部要点,可直接用于代码评审自查。
3. 适用场景
所属固定分类:前端与设计——该技能处理的是 Compose UI 层的手势拦截与返回动画过渡效果,核心是用户可见的界面交互行为,而非后端逻辑或纯工程工具链;与库内 --neighbors "返回手势 预测式返回 导航 手势动画" 命中的同仓库姊妹技能 navigation-3-android-skills(同属前端与设计)判定一致。
适用人群:使用 Jetpack Compose 开发 Android 应用、需要实现符合 Android 16(API 36)预测式返回手势规范的团队,尤其是带多标签页/ViewPager/嵌套导航容器、或正从旧版 BackHandler 迁移的项目;要求项目 compileSdk 升级到 36 及以上,且仅限 Compose UI(不覆盖传统 View 体系)。
4. 跨 Agent 兼容性
- Claude Code:⚠️ 需适配。技能目录为标准 SKILL.md + YAML frontmatter + references 结构,遵循开放 Agent Skills 规范,可手动复制到
.claude/skills/使用;但官方 Android CLI 安装器默认只为 Gemini 与 Antigravity 生成技能目录,不会自动识别 Claude Code。 - Codex:⚠️ 需适配,理由同上——内容与具体 Agent 无关(纯 Markdown + Kotlin 代码示例),但需手动放置或显式指定安装目标。
- OpenClaw:❓ 未验证。
- Hermes Agent:❓ 未验证。
判断依据:核对 android/skills 仓库 README「Install Android skills」章节,官方安装命令 android skills add <skill> --project=. 明确写明“若未指定 --agent 且未检测到现有 Agent 目录,默认为 Gemini 与 Antigravity 安装”,未将 Claude Code / Codex 列入默认安装目标。
5. 推荐理由
Android 16 起系统级强制预测式返回手势,几乎所有面向该版本的 Compose 应用都需要适配这套新 API;本技能把 Google 官方新库的正确用法、四类最容易踩的坑(含崩溃与运行时异常)和迁移路径整理成一份可直接对照检查的指南,能有效降低团队在这次平台级 UI 交互变更中的返工成本。
6. 评分
| 维度 | 分数 | 说明 |
|---|---|---|
| 受欢迎程度 | 7 | Google LLC 官方出品(Android 平台所有者本身);所属合集仓库整体 7,319★ 不代表本技能自身热度,该技能自身暂无独立于合集之外的第三方讨论证据(底层 androidx.navigationevent 库本身有第三方技术博客介绍,但不构成对本技能的独立评价) |
| 可用性 | 8 | 步骤清晰、含完整排障指南与 RIGHT/WRONG 代码对照,核心依赖 navigationevent 已是正式版 1.0.0(非预发布),2026-09-01 近期有更新维护;但要求 compileSdk 36+ 且仅限 Compose UI,非“复制即用”,需项目满足前置版本条件 |
| 安全性 | 9 | 纯文档/代码指南类技能,本身不执行 shell 命令、不联网外发数据、不索取任何凭据;License 明确、官方维护、正文无可疑指令或夹带私货迹象 |
安全检查清单:
① Shell 命令:无,技能不执行任何 shell 命令,仅指导添加 Gradle 依赖与编写 Kotlin 代码。 ② 联网外发:技能本身不联网;文档描述的是 App 运行时响应系统级返回手势事件,属 Android 系统 API 本身行为,非技能夹带的外发动作。 ③ API key/凭据:无需任何 API key 或凭据。 ④ 可疑指令:未发现夹带推广或与技能功能无关的指令。 ⑤ 作者信誉:Google LLC 官方维护,无造假迹象。 ⑥ License:Apache License 2.0,明确。 ⑦ 维护时间:2026-09-01 更新,活跃维护。
7. 跟同类 Skills 相比的优势
| 对比对象 | 定位 | 差异 |
|---|---|---|
| navigation-3-android-skills(同仓库) | Jetpack Navigation 3 库的路由/导航图配置指南 | 解决“页面间如何跳转、导航图怎么搭”的问题;本技能解决“返回手势本身怎么拦截、怎么做过渡动画”的问题,二者可组合——项目已用 Navigation 3 时应优先用其内置返回支持,仅在需要更底层的 dispatcher 控制(如自定义 ViewPager/Tab 场景)时才用本技能 |
| expo-router-expo-skills | React Native/Expo 生态的文件路由与导航配置技能 | 服务跨平台 RN/Expo 技术栈;本技能专注原生 Android Compose 生态,针对 Android 16 平台级返回手势规范做深度适配,两者面向的技术栈与平台完全不同 |
差异化在于:专注 Android 16 引入的系统级预测式返回这一具体交互变更,提供其他导航类技能未覆盖的手势拦截、dispatcher 层级管理与运行时异常排障细节。
8. 用户评价
该技能目前在第三方平台尚无具名用户评价。
9. 安装使用方式
方式一:Android CLI(官方,需先安装 Android CLI)
android skills add navigation-event --project=.
未指定 --agent 时默认为 Gemini 与 Antigravity 自动安装;面向 Claude Code / Codex 需显式使用 --agent 参数,或使用下方手动方式。
方式二:手动安装(适用于 Claude Code / Codex)
从 https://github.com/android/skills/tree/main/navigation/navigation-event 下载 SKILL.md 与 references/ 目录,整体复制到项目对应 Agent 的技能目录(如 .claude/skills/navigation-event/)。
安装后注意事项:向 Agent 描述“实现预测式返回手势/处理返回导航动画”等相关任务,Agent 会自动检索并使用该技能;无需重启,生效范围仅限当前项目/会话;使用前需将项目 compileSdk 升级到 36 及以上,并在 Gradle 中声明 navigationevent 与 navigationevent-compose 依赖(技能会指导添加)。
10. 注意事项
- 要求
compileSdk36(Android 16)及以上,且仅覆盖 Jetpack Compose UI,传统 View 体系与非 Compose 实现不在本技能范围内。 - 若项目已使用 Navigation 3 库,应优先使用其内置返回支持,仅在需要更底层的 dispatcher 控制场景(自定义 ViewPager/Tab 容器)才使用本技能。
- OpenClaw、Hermes Agent 兼容性未经专门验证,建议先小范围试点。
- 技能对“同一状态重复绑定处理器”等运行时错误有明确说明,但实际项目中仍需结合具体 UI 结构判断 dispatcher 归属,不能机械套用示例代码。