Android 切换Fragment时改变actionBar

这次在做项目时遇到一个问题,怎么在切换Fragment时,顺便改变一下actionBar。项目是一个Activity上面承载着四个Fragment,第一个Fragment要求标题栏上面有加号,第二个、第三个、第四个也有要求(这里就不多说了),反正就是每一个Fragment的标题栏上面的内容都不一样。


刚开始的时候,准备自己四个定义个actionBar,不用系统的。然后觉得不大方便,最后终于找到了解决办法。(废话不多说了,直接上代码)

 @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
        contentView = inflater.inflate(R.layout.fragment_main, container, false);
        setHasOptionsMenu(true);  //保证能在Fragment里面调用onCreateOptionsMenu()方法
        initView();
        initData();
        return contentView;
    }


然后就可以在Fragment里面重写onCreateOptionsMenu()方法,将自己想要展示的东西放到menu文件夹中:

@Override
    public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
        menu.clear();
        inflater.inflate(R.menu.main_menu_item, menu);
    }

最后就可以在每个Fragment中使用并更改actionBar了。


你可能感兴趣的:(Android学习)