Android Studio - 只是无法让动作栏/溢出工作?

Fat*_*tie 3 android android-actionbar

我正在使用Android Studio(实际上是在Mac上),只使用真实设备

这只是4.1+.所有项目都是新鲜的.

检查 - 我确实加载了支持和appcompat,尽管我能理解Gradle.[一个]

在此输入图像描述

检查 - onCreateOptionsMenu等,看起来不错......

在此输入图像描述

检查 - xml很好用.(我完全理解showAsAction选项,并尝试了所有选项.)[B]关于使用文本或图标,我尝试了所有的排列.

在此输入图像描述

那会发生什么?

当我在一台设备上运行它(10+测试).它只显示尽可能多的动作栏项(比如5个左右).旋转等完美运作.

但它只是不会显示溢出图标!WTF?它根本不显示任何地方缺少的三个或四个项目.

我已经尝试了所有这些"空白活动"和"全屏活动".无论我做什么,它都不会显示@#$ @溢出.

这几乎就像图标在构建中没有可用的东西?

可以有任何Android好友心理这个问题吗?这是一个真正的"WTF"时刻.提前致谢.

我的解决方法... /sf/answers/1599859551/ 这很好用,但你的Android人会嘲笑我这样做.

[A] :( 请注意,我有两个build.gradle文件;我在内部应用程序/内部执行了.对外部文件不起作用.)

[B] :( 注意,一个常见的问题似乎是当人们没有得到'always'和'ifRoom'之间的区别.TBC根本不是我的问题:我的问题是@ $ @#溢出只是没出现!!)


BTW适合任何刚接触Android的人......

/sf/answers/1123233261/

扩展讨论可能非常有用.

Pat*_*ann 8

按Android Studio左上角的"文件",选择"项目结构...".将打开一个对话框,左侧有一个模块列表.

选择项目的模块,转到"Dependencies"选项卡,按右侧的绿色"+",在下一个Dialog中选择"Library Dependencies",您将能够添加所需的库.

如果"支持v4"和"AppCompat"不可用,您应首先通过Android SDK Manager安装"Android支持库"和"Google Repository".

在此输入图像描述


Bud*_*ius 6

那将是我最好的客人.带硬件按钮的设备不显示3点菜单.

此外,如果项目是4.1+,您既不需要support-v4也不需要appcompat-v7.那些可能会引起一些冲突.

链接到不同设备上按钮的Google说明:http: //developer.android.com/design/patterns/compatibility.html

关于使用build.gradle文件或对话框,好吧,可能是的,但我已经习惯了gradle文件,甚至从未看过对话框,但我只是老了.


结果!

在此输入图像描述

发现Dirty Hack强制溢出图标在具有硬件菜单按钮的设备上可见.

private void getOverflowMenu() {

     try {
        ViewConfiguration config = ViewConfiguration.get(this);
        Field menuKeyField = ViewConfiguration.class.getDeclaredField("sHasPermanentMenuKey");
        if(menuKeyField != null) {
            menuKeyField.setAccessible(true);
            menuKeyField.setBoolean(config, false);
        }
    } catch (Exception e) {
        e.printStackTrace();
    }
}
Run Code Online (Sandbox Code Playgroud)

资料来源:http://www.tagwith.com/question_264107_overflow-menu-not-showed-at-action-bar