【问题标题】:How to create option menu in activity_main.xml?如何在 activity_main.xml 中创建选项菜单?
【发布时间】:2018-09-09 12:52:04
【问题描述】:

我试图在 activity_main.xml 应用栏中显示选项菜单,所以我进入 value 文件夹,然后创建一个菜单并在 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】:

    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 中定义一个主题属性,但我找不到它。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-02-19
      • 1970-01-01
      • 1970-01-01
      • 2011-09-09
      • 2021-07-02
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多