建立 ActionBar:基于 android-training-course-in-chinese 从零配置标题栏并兼容 Android 2.1 至 3.0+

发布时间:2026/10/5 6:49:51
建立 ActionBar:基于 android-training-course-in-chinese 从零配置标题栏并兼容 Android 2.1 至 3.0+ 文档教程移动开发【免费下载链接】android-training-course-in-chineseAndroid官方培训课程中文版项目地址https://gitcode.com/gh_mirrors/an/android-training-course-in-chinese点击查看免费下载ActionBar操作栏是 Android 应用中最重要的设计元素之一它既是应用品牌标识的固定载体也是用户定位当前页面的坐标参照。本篇技术指南以《Android 官方培训课程中文版》仓库中的 建立ActionBar 为核心完整讲解 ActionBar 的最简形态以及仅支持 Android 3.0与通过 Support Library 兼容 Android 2.1两条配置路线读完即可在自己的工程中准确声明主题、配置 manifest 并得到一个开箱可用的 ActionBar。图 1. ActionBar 最基础的形式左侧是应用图标app icon右侧为当前 Activity 的标题顶部为系统状态栏。ActionBar 的最简形态标题 应用图标ActionBar 最基本的形式就是为 Activity 显示标题并且在标题左边显示一个 app icon。即使在这样简单的形式下action bar 对于所有的 activity 来说也是十分有用的它告知用户他们当前所处的位置并为你的 app 维护持续统一的品牌标识。正如仓库中 添加Action Bar 一节所归纳的ActionBar 的核心功能还包括提供一个专门的空间用来显示 app 的标识以及指出目前所处在 app 的哪个页面以一种可预见的方式访问重要的操作比如搜索支持导航和视图切换通过 Tabs 和下拉列表。设置一个基本的 action bar需要 app 使用一个对 action bar 可用的 activity 主题。如何声明这样的主题取决于我们 app 支持的 Android 最低版本。因此本课程的核心是根据最低版本选择正确的主题与库依赖分为两条路线最低支持版本使用主题家族需要的额外依赖典型 minSdkVersionAndroid 3.0API level 11及以上Theme.Holo及其子类无11或更大Android 2.1API level 7及以上Theme.AppCompat及其子类v7 appcompat Support Library7及以上路线一仅支持 Android 3.0 及以上版本从 Android 3.0API level 11开始所有使用Theme.Holo主题或者它的子类的 Activity 都包含了 action bar。当targetSdkVersion或minSdkVersion属性被设置为11或更大时Theme.Holo是默认主题。所以要为 activity 添加 action bar只需简单地在 manifest 中把最小版本属性设置为11或者更大。例如manifest ... uses-sdk android:minSdkVersion11 ... / ... /manifest注意如果创建了一个自定义主题需确保这个主题以Theme.Holo主题作为父类否则 ActionBar 会失去大量默认样式属性。详情见 ActionBar 的风格化。配置完成后app 即使用Theme.Holo主题且所有 activity 都会显示 action bar。这一方案的优势在于零额外依赖——只要设备系统版本满足 API 11 及以上系统框架原生提供 ActionBar 实现。路线二支持 Android 2.1 及以上版本当 app 需要运行在 Android 3.0 以下版本不低于 Android 2.1时系统框架自带的Theme.Holo与原生 ActionBar 均不可用必须加载Android Support Library即 v7 appcompat 库来获得向后兼容的 ActionBar 实现。开始之前需要先建立v7 appcompatlibrary下载 library 包之后按照 Adding libraries with resources 的指引将其作为库工程集成进 app 工程appcompat 是带资源的库项目其res/目录下的主题、样式资源会参与编译。在 Support Library 集成到 app 工程中之后共需要两步改造1、更新 activity使其继承ActionBarActivity。例如public class MainActivity extends ActionBarActivity { ... }ActionBarActivityv7 appcompat 提供的兼容 Activity 基类负责在旧系统上模拟 ActionBar 行为并在所有版本上统一提供getSupportActionBar()等兼容 API。2、在 manifest 文件中更新application标签或单个activity标签使用Theme.AppCompat家族主题。例如activity android:themestyle/Theme.AppCompat.Light ... 注意如果创建一个自定义主题需确保其以Theme.AppCompat主题作为父类。详情见 ActionBar 风格化。完成上述两步后当 app 运行在 Android 2.1API level 7或者以上时activity 将包含 action bar。这里可以顺带对照仓库中的 ActionBar 覆盖叠加 一节在叠加模式下自定义主题仍须继承Theme.Holo或Theme.AppCompat家族且windowActionBarOverlay属性需要声明两遍带android:前缀的系统属性 不带前缀的兼容属性这正是 appcompat 库同一属性双重声明模式的延续——你可以把它视为使用 Support Library 时的一种通用约定。兼容路线的运行期效果需要注意的是Theme.AppCompat并不仅仅是主题名称的替换由于旧系统没有原生的 ActionBar 窗口装饰v7 appcompat 是在 activity 内部以视图View形式绘制出 ActionBar 的。因此在使用 Support Library 时后续添加操作按钮见 添加Action按钮所使用的showAsAction属性、以及获取 ActionBar 实例的getSupportActionBar()方法都与原生方案有所区别——例如showAsAction在android:命名空间下不可用需要自定义命名空间xmlns:yourapphttp://schemas.android.com/apk/res-auto并写成yourapp:showAsActionifRoom。切记在 manifest 中正确声明 API level无论选择哪条路线都要在 manifest 中正确地设置 app 支持的 API level。仓库中的 适配不同的系统版本 一节对此有更完整的阐述uses-sdk元素中的minSdkVersion标明最低兼容的 API 级别targetSdkVersion标明设计和测试时针对的目标级别。官方推荐的兼容配置示例为manifest ... uses-sdk android:minSdkVersion7 android:targetSdkVersion18 / ... /manifest设置minSdkVersion7即声明 app 最低支持 Android 2.1targetSdkVersion18表示 app 针对 Android 4.3API 18的规范进行设计。当targetSdkVersion为 11 或更大时在 Android 3.0 及以上设备上会默认启用原生 ActionBar而低版本设备则走 appcompat 的兼容实现——这正好与路线一/路线二的选型逻辑相呼应。值得补充的是版本判断的实践如果在代码中要使用仅在 API 11 之后才存在的方法如getActionBar()应在运行时先用Build.VERSION.SDK_INT Build.VERSION_CODES.HONEYCOMB做条件判断避免低版本设备直接调用高版本 API 而崩溃。验证你的配置配置完成后可以在模拟器或真机上验证运行 app观察每个 Activity 顶部是否出现包含 app icon 和标题的 ActionBar形态见图 1在低版本模拟器如 API 7与高版本设备上分别运行确认两条路线各自的显示效果打开 Android Studio 的 Logcat检查是否存在You need to use a Theme.AppCompat theme (or descendant) with this activity之类的主题不匹配报错——出现该错误通常意味着继承ActionBarActivity的 Activity 没有使用Theme.AppCompat家族主题需要回到本课程第 2 步修正 manifest。下一步继续 ActionBar 系列课程本课程属于仓库中 添加Action Bar 章的第一课搭建好基础 ActionBar 之后可以按顺序继续学习同章课程添加Action按钮在res/menu/中定义菜单资源通过onCreateOptionsMenu()加载、onOptionsItemSelected()响应并为下级 Activity 添加向上按钮自定义ActionBar的风格自定义背景、文本颜色与 Tab 指示器ActionBar的覆盖叠加通过android:windowActionBarOverlay启用叠加模式实现 ActionBar 隐藏/显示时的无缝过渡。全文内容与完整课程结构可对照仓库的 SUMMARY.md 查阅本课原文位于 basics/actionbar/setting-up.md配套图示 actionbar-basic.png 展示了最基本的 ActionBar 形态。赞分享文档教程移动开发【免费下载链接】android-training-course-in-chineseAndroid官方培训课程中文版项目地址https://gitcode.com/gh_mirrors/an/android-training-course-in-chinese点击查看免费下载相关推荐Android 应用间内容分享实战指南基于 android-training-course-in-chinese 的 Intent、FileProvider 与 Android Beam 全流程解析Android 应用间内容分享实战指南基于 android training course in chinese 的 Intent、FileProvider文档教程移动开发Android 适配不同屏幕完整指南基于 android-training-course-in-chinese 的尺寸与密度资源限定符实战Android 适配不同屏幕完整指南基于 android training course in chinese 的尺寸与密度资源限定符实战 本文是《Andro文档教程移动开发rrule.js与前端框架整合React、Vue、Angular中的最佳实践rrule.js与前端框架整合React、Vue、Angular中的最佳实践 rrule.js是一个功能强大的JavaScript库用于处理日历日期的重复规后端上一篇PS手柄Windows没反应DS4Windows从安装到进阶一次讲透下一篇中文 Alpaca 系列模型数值计算与推理能力实测Plus-7B、Plus-13B 与 33B 的 20 题对比分析创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

关于本文作者

来自尧图内容编辑团队

尧图内容编辑团队 内容团队

尧图内容编辑团队

本文由尧图网络内容编辑团队执笔。团队由资深项目经理、前端工程师与设计师组成,所有内容均来自亲手交付的真实项目,先讲清问题、再给出可落地的解法。尧图深耕北京网站建设十年,服务过京华建材集团、智造科技等各行业客户,把一线经验沉淀为可复用的行业观察。

  • 十年建站经验,覆盖建材、制造、服务、文创等
  • 项目经理把关选题与事实准确性
  • 工程师与设计师联合撰写专业细节
  • 统一编辑规范,保证文风与排版一致
  • 每月复盘转化数据,迭代选题方向

延伸阅读

相关资讯与近期热门内容

深度阅读推荐

建站决策前值得细读的三篇

网站改版的5个关键决策
2024-08-12

网站改版的5个关键决策

什么时候该改版、改到什么程度、如何避免流量掉光,京华建材集团改版复盘给出答案。

获取专属建站方案

看完文章,把您的行业与预算告诉我们,免费获取一份量身定制的官网建设方案与报价。

立即免费咨询