【问题标题】:appcompat-v7 r21/r22: force show overflow menu iconappcompat-v7 r21/r22:强制显示溢出菜单图标
【发布时间】:2015-04-01 12:22:02
【问题描述】:

即使使用新的 r21/r22 appcompat 库,使用具有低于 Android Kitkat 的硬件菜单按钮的设备的人似乎仍然无法在屏幕上看到菜单按钮。

我猜是由内部ActionBarPolicy类决定的:

public boolean showsOverflowMenuButton() {
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
        return true;
    } else {
        return !ViewConfigurationCompat.hasPermanentMenuKey(ViewConfiguration.get(mContext));
    }
}

所以强制溢出菜单按钮仅在 KitKat 及更高版本上。

是否有任何方法可以强制显示溢出菜单,即使应用程序在低于 KitKat 且带有硬件菜单按钮的设备上运行?

【问题讨论】:

  • 普遍的共识是,您应该让操作系统确定是否需要显示它,如果设备有硬件菜单按钮,则强制溢出菜单是不好的做法。但是,这篇文章中有一个答案:stackoverflow.com/a/15493649/4409409我没有测试过,所以我不确定它是否有效。

标签: android menu android-appcompat


【解决方案1】:

在 appcomt 支持库中,使用您自己的工具栏(从 xml 扩展或从代码创建)替换默认操作栏(在您的 ActionbarActivity 调用 setSupportActionar(toolbar) 中),您将看到溢出菜单(如果您已设置菜单)。

在 android 2.3.x 模拟器上测试。

【讨论】:

    猜你喜欢
    • 2015-05-16
    • 1970-01-01
    • 2014-12-18
    • 2014-12-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多