繁体   English   中英

ActionBar pre Honeycomb

[英]ActionBar pre Honeycomb

我正在为 android (2.1 > 3.1) 编写一个应用程序,我想使用熟悉的做法,即在 Honeycomb 应用程序中使用应用程序图标到 go 直到家庭活动,但是,当我在早期的非 Honeycomb 设备上运行活动时Activity.getActionBar(); 方法尚不存在,应用程序强制关闭,如果设备正在运行蜂窝,我该如何只运行此指定代码?

@Override
protected void onStart() {
    super.onStart();
    ActionBar actionBar = this.getActionBar();
    actionBar.setDisplayHomeAsUpEnabled(true);
}

感谢您的帮助,祝您有美好的一天。

我已经为 Android 编写了一个库,它将自动包装您的 pre-3.0 活动,并使用操作栏设计模式的自定义实现。 然后,您可以调用getSupportActionBar() ,这将为本地和自定义实现提供一个通用接口,具体取决于您的应用程序在哪个版本的 Android 上运行。

该库还允许您通过单个主题将自定义 styles 应用于这两个操作栏。

您可以在actionbarsherlock.com中找到更多信息以及示例应用程序的屏幕截图。

该库是 100% 开源的,可从github.com/JakeWharton/ActionBarSherlock 获得

Android pre-Honeycomb 没有 ActionBar,因此任何有关 actionBar 的方法都会失败。 您应该查看来自 Google IO 应用程序的代码,该应用程序对 Honeycomb 和 pre-Honeycomb 都使用了 ActionBar。

简而言之,它不会单独工作,您必须包含自己的 ActionBar 代码。

来自操作栏的 API 指南它说:

Action Bar Compatibility 示例应用程序提供了 API 层和操作栏布局,允许您的应用程序使用一些 ActionBar API,并通过用自定义操作栏布局替换传统标题栏来支持旧版本的 Android。

您可以通过安装Android 4.1 (API 16) 示例来获得此功能。

然后在 Eclipse 中:

  1. Go 到文件 > 新建 > 项目
  2. Android > Android 示例项目
  3. 检查 Android 4.1
  4. Select ActionBarCompat

由于预蜂窝上不存在操作栏,您将不得不使用其他东西。 一个建议是使用 johannilssons 操作栏库,该库可以在 github 上找到。 直接链接: https://github.com/johannilsson/android-actionbar

从修订版 18 开始, Android 支持库包含回到 API 级别 7 的 ActionBar 支持。现在这是为所有版本的 ZE84E30B9390CDB64DB6DB22C9AB87846DZ 提供支持的推荐方法

我认为代码是不言自明的

private static int sdkVersion;
 static 
 {
    try {
      sdkVersion = Integer.parseInt(android.os.Build.VERSION.SDK);
    } catch (Exception ex) {
    }
  }

  /** Device support the froyo (Android 2.2) APIs */
  public static boolean isAndroid22() {
    return sdkVersion >= 8;
  }

  /** Device support the Gingerbread (Android 2.3) APIs */
  public static boolean isAndroid23() {
    return sdkVersion >= 9;
  }

  /** Device supports the Honeycomb (Android 3.0) APIs */
  public static boolean isAndroid30() {
    return sdkVersion >= 11;
  }

我喜欢使用 GreenDroids 操作栏(加上它们包括一些其他漂亮的东西): http://android.cyrilmottier.com/?p=240

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM