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

问题描述 投票:-1回答:1

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

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

如果我在设备屏幕5.0上运行此应用程序然后在Appbar中显示3个点并且工作正常但是如果我在4.0英寸或更小的较小屏幕上运行此应用程序然后5.0这样3点菜单在Appbar中不显示但如果我按菜单按钮仍然有效在软键中。为什么这个菜单在较小的屏幕上超出屏幕。我想我忘了要写或创造的东西。

android android-layout android-activity kotlin
1个回答
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中定义一个主题属性,但我找不到它。

© www.soinside.com 2019 - 2024. All rights reserved.