我正在阅读使用操作栏,它说,“......如果你想使用操作栏 API,例如添加选项卡或修改操作栏样式,你需要将 android:minSdkVersion 设置为'11',所以你可以访问 ActionBar 类。” 但是,在I/O项目中,Manifest 的 minSdkVersion 为“7”。他们如何制作主题和标签?我很难理解他们在做什么。
谢谢
我认为要查看的重要代码在ActivityHelper和ActivityHelperHoneycomb中。基本上他们正在设置android:targetSdkVersion="11"
and android:minSdkVersion="7"
,然后选择性地调用 Honeycomb(或更高版本)上的新 ActionBar API 和他们自己的自定义操作栏实现 pre-Honeycomb。
如果您还没有 pre-Honeycomb 的操作条码,有一个名为ActionBarSherlock的好项目,它允许您简单地使用 ActionBar API 并让它在 pre-Honeycomb 上工作(只需更改一些导入)。
注意:如果您决定使用 ActionBarSherlock 并且您已升级环境以使用新发布的 API 级别 13r1 或 12r2 代码,请确保使用版本 3.0.3 或更高版本(此处有更多信息)。
编辑:更多背景知识可以更好地回答您的问题。设置android:targetSdkVersion="11"
足以让您访问ActionBar
课程。设置android:targetSdkVersion="7"
允许应用程序在预蜂窝设备上运行,但从ActionBar
它们调用代码会导致NoClassDefFoundError
(或者可能NoSuchMethodError
?)。
为了避免这种情况,他们使用ActivityHelper
API 级别 < 11 和ActivityHelperHoneycomb
API 级别 >= 11。ActivityHelper#createInstance(Activity)是他们决定使用哪个级别的地方。