关于在fragment里面使用toolbar,menu不显示和错乱的问题
2016-07-15 11:48
465 查看
最近项目中有个需求,mainactivity里面有4个fragment,其中有两个需要标题栏,两个不需要,然后我在需要toolbar的fragment里面单独写了这个控件,刚开始的代码,我只贴关键部分,
1.在fragment的oncreate方法中设置:
2.在onViewCreated方法中初始化toolbar:
3.在重写onCreateOptionsMenu:
4.重写onOptionsItemSelected:
这完成了一个fragment的toolbar,第二个照猫画虎吧,结果你会发现,当你从fragmentA切换到fragmentB,这时候正常的,再回到fragmentA的时候,发现A的menu消失了,一部分同学的现象是错乱了,然后百度了一圈,终于找到了答案,解决办法如下:
小伙伴们快去试试吧
1.在fragment的oncreate方法中设置:
@Override public void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); setHasOptionsMenu(true);//加上这句话,menu才会显示出来 }
2.在onViewCreated方法中初始化toolbar:
@Override public void onActivityCreated(@Nullable Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); //add toolbar ((AppCompatActivity) getActivity()).setSupportActionBar(mToolbarContact); mToolbarContact.setTitle("通讯录"); }
3.在重写onCreateOptionsMenu:
@Override public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) { menu.clear();//这句话没用啊,谁知道 inflater.inflate(R.menu.menu_contacts, menu); super.onCreateOptionsMenu(menu, inflater); }
4.重写onOptionsItemSelected:
@Override public boolean onOptionsItemSelected(MenuItem item) { int id = item.getItemId(); if (id == R.id.menu_add_contact) { T.showToastBro(getActivity(), item.getTitle().toString()); } if (id == R.id.menu_nearby_businesses) { T.showToastBro(getActivity(), item.getTitle().toString()); } return super.onOptionsItemSelected(item); }
这完成了一个fragment的toolbar,第二个照猫画虎吧,结果你会发现,当你从fragmentA切换到fragmentB,这时候正常的,再回到fragmentA的时候,发现A的menu消失了,一部分同学的现象是错乱了,然后百度了一圈,终于找到了答案,解决办法如下:
((AppCompatActivity) getActivity()).setSupportActionBar(mToolbar); //换成下面这句就OK了 mToolbar.inflateMenu(R.menu.menu);
小伙伴们快去试试吧
相关文章推荐
- drupal中hook_menu()使用
- Android菜单menu控件大全
- C#实现Menu和ContextMenu自定义风格及contextMenu自定义
- android编程之menu按键功能实现方法
- 学习理解Android菜单Menu操作
- Android学习笔记――Menu介绍(一)
- Android开发之menu菜单
- Android学习笔记――Menu介绍(三)
- Android学习笔记――Menu介绍(二)
- Android提高之自定义Menu(TabMenu)实现方法
- Android实现扩展Menu的方法
- Android中捕捉menu按键点击事件的方法
- Android动态添加menu菜单的简单方法
- 详解Android中的Menu菜单键
- Java Swing中的下拉式菜单(menu)、弹出式菜单(JPopupMenu)、选项卡窗体(JTabbedPane)组件使用案例
- 如何找回Notepad++的右键菜单
- Yii2 rbac权限控制之菜单menu实例教程
- Android 自定义系统菜单的背景源码
- menu基本用法
- 2015Android移动开发应用主流菜单模式