5

我有一个带有全屏查看器的现有应用程序,它使用菜单按钮显示选项。我已将 android:targetSdkVersion 设置为 14,以使整个应用程序主题看起来像原生 ICS 应用程序。

问题是,当将 Activity 样式设置为全屏时,我没有菜单按钮,如果我显示 ActionBar,会占用应用程序太多的屏幕空间来显示菜单。

有没有办法在 ICS 全屏显示时保持常规菜单按钮?

4

2 回答 2

2

我想没有办法只显示 ICS 操作栏的一小部分 - 至少它看起来很奇怪。对您来说最好的方法是在您的应用程序“菜单按钮”中的某个位置创建。如果您想为带有硬件菜单按钮的手机隐藏此按钮,可以选择检查 SDK 版本: android.os.Build.VERSION.SDK_INT

于 2011-12-14T13:01:01.003 回答
2

如果您对 hackiness 和反思感到满意,那么有一种方法。Daniel Lew在他的博客中提到了它。他适当地指出,这实际上并不意味着与生产代码一起使用。Android 开发人员将来可能会取消此功能。

public static void addLegacyOverflowButton(Window window) {
  if (window.peekDecorView() == null) {
    throw new RuntimeException("Must call addLegacyOverflowButton() after setContentView()");
  }

  try {
    window.addFlags(WindowManager.LayoutParams.class.getField("FLAG_NEEDS_MENU_KEY").getInt(null));
  }
  catch (NoSuchFieldException e) {
    // Ignore since this field won't exist in most versions of Android
  }
  catch (IllegalAccessException e) {
    Log.w(TAG, "Could not access FLAG_NEEDS_MENU_KEY in addLegacyOverflowButton()", e);
  }
}
于 2012-09-01T04:37:27.387 回答