Fragment切换Activity中的ToolBar上的菜单

2017-03-14  本文已影响0人  Lovemma

需求

Toolbar 布局放在底层的 Activity 中, 而Toolbar 上的菜单需要根据切换的 Fragment 进行切换时。

分析

FragmentActivity一样,可以重写onCreateOptionsMenu方法来设定自己的菜单,其实这两个地方使用onCreateOptionsMenu的目的和效果都是完全一样的,但是由于Fragment是从属于Activity的,因此使用onCreateOptionsMenu的时候需要注意以下几点。

    /*
    Activity的onCreateOptionsMenu方法
     */
    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        return super.onCreateOptionsMenu(menu);
    }
    /*
    Fragment的onCreateOptionsMenu方法
     */
    @Override
    public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
        super.onCreateOptionsMenu(menu, inflater);
    }

两者的差别在于
 1.一个有返回值,一个没有
 2.Fragment的onCreateOptionsMenu的方法多了一个MenuInflater参数

Initialize the contents of the Activity's standard options menu. You should place your menu items in to menu
. For this method to be called, you must have first called setHasOptionsMenu(boolean).

    @Override
    public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
        menu.clear();
        super.onCreateOptionsMenu(menu, inflater);
    }
上一篇 下一篇

猜你喜欢

热点阅读