【问题标题】:Menu not inflating properly菜单没有正确充气
【发布时间】:2014-06-30 02:53:13
【问题描述】:

我已经尝试了在堆栈溢出的另一篇文章中发现的几乎所有内容,但我无法找到解决此错误的方法......

到目前为止,我已经尝试重建项目,清理,再次制作项目,重新启动 android studio,重新启动计算机并从手机上卸载应用程序。

我有 2 个片段非常相似,但它们都有不同的菜单布局。

这里有一个片段的菜单:

<?xml version="1.0" encoding="utf-8"?>
<menu
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    tools:context="com.gabilheri.formulacalculator.main.MainActivity" >
<item
    android:id="@+id/delete"
    android:icon="@android:drawable/ic_menu_delete"
    android:title="Delete"
    android:orderInCategory="10"
    android:visible="true"
    app:showAsAction="always"
    />
<item android:id="@+id/action_settings"
      android:title="@string/action_settings"
      android:orderInCategory="100"
      app:showAsAction="never" />
</menu>

这是片段中菜单的代码:

@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
    super.onCreateOptionsMenu(menu, inflater);
    inflater.inflate(R.menu.log_menu, menu);

}

这是我的另一个片段:

<?xml version="1.0" encoding="utf-8"?>
<menu
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    tools:context="com.gabilheri.formulacalculator.main.MainActivity">
<item
    android:id="@+id/saveTheme"
    android:icon="@android:drawable/ic_menu_save"
    android:title="Save"
    android:orderInCategory="10"
    android:visible="true"
    app:showAsAction="always"
/>

<item android:id="@+id/action_settings"
    android:title="@string/action_settings"
    android:orderInCategory="100"
    app:showAsAction="never" />

这是在另一个片段中调用菜单的代码:

 @Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
    super.onCreateOptionsMenu(menu, inflater);
    inflater.inflate(R.menu.menu_themes, menu);

}

我真的不明白为什么两个相同的 sn-ps 代码在一个片段中起作用,而在另一个片段中不起作用......

【问题讨论】:

  • “不工作”是什么意思?
  • 其中一个片段中的菜单没有出现。其中一个没有菜单选项......具有相同的代码。

标签: android android-layout android-fragments menu android-studio


【解决方案1】:

确保您调用 Fragment.setHasOptionsMenu(true) 以通知框架您的 Fragment 有一个选项菜单 - 如果您不调用它,则永远不会调用 onCreateOptionsMenu

通常您应该在您的FragmentonCreate 方法中执行此操作。

【讨论】:

  • 谢谢!我忘了把它添加到另一个片段中!我重新检查了第一个片段的代码,确实它在 onCreateView 里面有 setHasOptionMenu(true)
  • 我调用了 Fragment.setHasOptionsMenu(true) 但仍然无法正常工作,即使我调试 onCreateOptionsMenu 被触发,但菜单项仍然不显示
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-08-27
  • 2021-04-02
  • 1970-01-01
  • 1970-01-01
  • 2022-01-14
相关资源
最近更新 更多