Fragment中menu菜单注意事项
2014-12-12 15:41
302 查看
以前一般都是在Activity中添加menu菜单,一般是重写onCreateOptionsMenu和onOptionsItemSelected方法。
现在用fragment用的多了,就在fragment里面添加menu菜单,也是重写了onCreateOptionsMenu和onOptionsItemSelected方法,但是发现没有效果。
好吧,看了下源代码,原来跟一个mHasMenu的boolean变量有关系
这个变量控制fragment的menu菜单添加:
上面代码说明,如果mHasMenu为false,那么是不会执行onCreateOptionsMenu(menu, inflater)方法的,也就是不会添加fragment的menu菜单。
所以,在fragment中使用menu菜单,需要在onCreate()方法里面添加语句
setHasOptionsMenu(true);
也就是这样:
嗯,很简单的东西,总结下,希望大家以后不要跟我一样犯错误哈。。
现在用fragment用的多了,就在fragment里面添加menu菜单,也是重写了onCreateOptionsMenu和onOptionsItemSelected方法,但是发现没有效果。
好吧,看了下源代码,原来跟一个mHasMenu的boolean变量有关系
1 | // If set this fragment has menu items to contribute. |
2 | boolean mHasMenu; |
01 | boolean performCreateOptionsMenu(Menu menu, MenuInflater inflater) { |
02 | boolean show = false ; |
03 | if (!mHidden) { |
04 | if (mHasMenu && mMenuVisible) { |
05 | show = true ; |
06 | onCreateOptionsMenu(menu, inflater); |
07 | } |
08 | if (mChildFragmentManager != null ) { |
09 | show |= mChildFragmentManager.dispatchCreateOptionsMenu(menu, inflater); |
10 | } |
11 | } |
12 | return show; |
13 | } |
所以,在fragment中使用menu菜单,需要在onCreate()方法里面添加语句
setHasOptionsMenu(true);
也就是这样:
1 | <a href= "http://home.51cto.com/index.php?s=/space/5017954" target= "_blank" > @Override </a> |
2 | public void onCreate(Bundle savedInstanceState) { |
3 | super .onCreate(savedInstanceState); |
4 | setHasOptionsMenu( true ); |
5 | } |
相关文章推荐
- Fragment中menu菜单注意事项
- Qt中关于menu菜单的定位以及相关注意事项
- MenuItemImage*图标菜单创建注意事项
- android fragment的 menu注意事项
- Fragment 中添加菜单注意事项
- fragment 创建菜单注意事项
- Fragment 中添加菜单注意事项
- cocos2dx 3.X 中 Menu, MenuItem 注意事项
- Android 在Fragment或activity中显示与隐藏Menu的菜单
- Fragment注意事项(包含了EventBus和网络)
- android 多个Fragment切换时的注意事项
- cocos2D中实现滑动菜单CCScrollView+CCMenu效果,(注意不是cocos2D-x)!!
- FragmentTransaction 使用注意事项
- Android 系统设置页面注入Fragment的注意事项
- Fragment onCreateView inflate注意事项
- Android Fragment 的使用,一些你不可不知的注意事项
- 【Fragment使用】(三)使用fragment的几个常见注意事项(重要)
- ViewPager使用fragmentadpater的注意事项
- android FragmentTabHost的使用技巧及注意事项
- 在一个FragmentTransaction中进行多个操作时的注意事项