ActionBar 中的按钮设置可见性?

Button in ActionBar setting visibility?

我有 3 个 Fragments,在 Fragment3 中,我想在我的 ActionBar 中显示一个图标,这很好用,但是当我返回到 Fragment1 和 Fragment2 等其他片段时图标保持 visible(true) 我尝试在 Fragment 的 onPause 中添加 item.setVisible(false),但不起作用,图标仍然显示在其他 Fragments

我该如何解决?

XML

<item
    android:id="@+id/action_chat"
    android:icon="@drawable/batalha_icon_chat"
    android:title="Chat"
    app:showAsAction="ifRoom"
    android:visible="true"
    />

片段

public class Fragment3 extends Fragment implements View.OnClickListener {
    private Menu mMenu;

@Override
    public void onCreate(Bundle savedInstanceState) {    
        super.onCreate(savedInstanceState);
        setHasOptionsMenu(true);
    }

@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
    inflater.inflate(R.menu.battle_chat, menu);
    mMenu = menu;
    MenuItem mi = mMenu.findItem(R.id.action_chat);
    if(this.isVisible()){
        Log.i("VISIBLE->", "true");
        mi.setVisible(true);
    }else{
        Log.i("VISIBLE->", "false");
        mi.setVisible(false);
    }
    super.onCreateOptionsMenu(menu, inflater);
}


@Override
    public boolean onOptionsItemSelected(MenuItem item) {
        switch (item.getItemId()) {
            case R.id.action_chat:
                Fragment frag = new HelloBubblesActivity();
                FragmentTransaction ft = getFragmentManager().beginTransaction();
                ft.replace(R.id.fl, frag,"HelloBubblesActivity");     
                ft.commit();
                return true;
            default:
                return super.onOptionsItemSelected(item);
        }
    }


 @Override
    public void onPause() {
        super.onPause();
    //API 9
    getActivity().supportInvalidateOptionsMenu();
}

您需要致电:invalidateOptionsMenu(); 这将调用 onCreateOptionsMenu().