我有3个Fragments
,并在Fragment3
我想在我的ActionBar
显示一个图标,这是工作正常,但当我做回其他碎片像片段1和Fragment2图标留visible(true)
我试着在片段的添加item.setVisible(false)
,但不起作用,图标保持显示在别人身上Fragments
按钮在ActionBar设置可见性?
我该如何解决?
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();
}
是否调用了onPause实际的beign? (我不这么认为)在“... setvisible”之上放置一个日志或烤面包来追踪它。 – 2015-02-11 11:49:03