如何在旧版本的安卓系统上使用操作栏(ActionBar)?

4

可能是重复问题:
在早期的sdk版本中,ActionBar有什么替代品?

如果我没记错的话,Android指南建议你使用ActionBar来进行应用程序内的全局导航。

但同时,你通常希望针对尽可能老的API以实现最大兼容性。

我正在开发一个应用程序,并将其目标设置为Android 2.2。这里能用action bar吗?如果不能,我该用什么?

谢谢 Kevin

3个回答

10

使用 ActionBarSherlock

  • 确保您的项目将Android 4.0+作为构建目标,并且已添加了兼容/支持库。(您可以右键单击项目,选择Android工具 > 添加支持库)
  • 下载ActionBarSherlock库项目并将其导入到Eclipse中。
  • 右键单击主要项目,选择属性,然后选择左侧窗格中的Android。在窗口的下半部分,单击添加按钮,然后选择ActionBarSherlock项目。单击“确定”。
  • 不使用常规Activity和Fragment,而是使用Sherlock Library中的Activity和Fragment。它们有相同的名称,但前缀为"Sherlock"(SherlockActivity、SherlockFragment等)。
  • 要在代码中访问操作栏,请调用getSupportActionBar()。它将返回常规操作栏(适用于Honeycomb及更高版本)或Sherlock操作栏(适用于Honeycomb之前版本)。
  • 有关主题指令,请参见ActionBarSherlock网站。

我感到困惑。如果我要针对Android 4,那么它在Android 2.2上就无法工作吗? - Kevin
我有点新,但我正在研究支持库。我认为这会弥合差距吗? - Kevin
1
支持库提供了一些东西,最显著的是片段(Fragments),但它不包含操作栏(ActionBar)。您的构建目标确定您的代码编译的平台版本;您可以在“属性”>“Android”下设置它。您支持的实际最低SDK由您在应用程序清单文件中放置的内容(如android:minSdk)确定。您可以将最新版本用作构建目标,同时声明您的应用程序运行在2.2版本及更高版本上。 - Karakuri
FYI:从v18开始,支持库包含自己的ActionBar实现。 - mente

3

有一个很好的示例项目叫做ActionBarCompat,它展示了如何实现这一点。虽然它不能完全覆盖针对API 11+的所有功能,但它已经非常不错了。


1

一定要使用ActionBarSherlock而不是ActionBarCompact。它更容易使用,而且维护得很好。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接