如何在activity_main.xml中创建选项菜单?

时间:2018-09-09 12:52:04

标签: android android-layout android-activity kotlin

我试图在activity_main.xml应用程序栏中显示选项菜单,所以我进入值文件夹,然后创建菜单并将此代码写入MainActivity.kt

override fun onCreateOptionsMenu(menu: Menu?): Boolean {
    menuInflater.inflate(R.menu.main_menu, menu)
    return true

如果我在设备屏幕5.0上运行此应用程序,则3个点在Appbar中显示并且工作正常,但是,如果我在4.0英寸或更小屏幕(如5.0英寸)上运行此应用程序,则3点菜单在Appbar中不显示,但如果我仍然可以使用按功能键中的菜单按钮。为什么在较小的屏幕上此菜单不显示在屏幕上。 我想我忘记了要写或创建的东西。

1 个答案:

答案 0 :(得分:1)

使用KitKat的Android版本上的较小屏幕设备吗?如果旧版本具有硬件菜单按钮或具有显示菜单按钮功能的软件导航栏,则默认情况下不会在ActionBar中显示三点菜单。

较小的屏幕也可能没有足够的空间来显示ActionBar中的按钮,而标题和潜在的NavigationDrawer按钮元素仍可以正确显示。

如果要强制其在所有设备上显示,请read this。基本上,您需要在onCreate()方法中添加以下内容:

try {
    ViewConfiguration config = ViewConfiguration.get(this);
    Field menuKeyField = ViewConfiguration.class.getDeclaredField("sHasPermanentMenuKey");
    if (menuKeyField != null) {
        menuKeyField.setAccessible(true);
        menuKeyField.setBoolean(config, false);
    }
} catch (Exception ignored) {
}

我似乎还记得可以在AppTheme中定义一个主题属性,但找不到。