以前一般都是在Activity中添加menu菜单,一般是重写onCreateOptionsMenu和onOptionsItemSelected方法。
现在Fragment用的多了,就在Fragment里面添加menu菜单,也是重写了onCreateOptionsMenu和onOptionsItemSelected方法,但是发现没有效果。在源代码中可以发现,这跟一个叫mHasMenu的boolean变量有关系。这个变量控制Fragment的menu菜单的添加。如果mHasMenu为false,那么是不会执行onCreateOptionsMenu方法的,也就是不会添加Fragment的menu菜单。
所以,要想在Fragment中使用menu菜单,需要在onCreate()方法里面添加语句setHasOptionsMenu(true);
本文解释了如何在Fragment中添加menu菜单,并说明了mHasMenu变量的作用。通过在onCreate()方法中设置setHasOptionsMenu(true),可以在Fragment中实现menu菜单的添加。

370

被折叠的 条评论
为什么被折叠?



