1

我正在阅读使用操作栏,它说,“......如果你想使用操作栏 API,例如添加选项卡或修改操作栏样式,你需要将 android:minSdkVersion 设置为'11',所以你可以访问 ActionBar 类。” 但是,在I/O项目中,Manifest 的 minSdkVersion 为“7”。他们如何制作主题和标签?我很难理解他们在做什么。

谢谢

4

1 回答 1

2

我认为要查看的重要代码在ActivityHelperActivityHelperHoneycomb中。基本上他们正在设置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?)。

为了避免这种情况,他们使用ActivityHelperAPI 级别 < 11 和ActivityHelperHoneycombAPI 级别 >= 11。ActivityHelper#createInstance(Activity)是他们决定使用哪个级别的地方。

于 2011-07-17T00:16:10.223 回答