我有一个MenuItem
,当我只选择ChatListFragment
的{{1}}时,我想让它显示出来:
FragmentTabHost
所以我在MainActivity中使它变得不可见:
<menu
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
tools:context=".MainActivity">
<item
android:id="@+id/action_start_chat"
android:icon="@drawable/ic_add_black_48dp"
android:title="@string/action_bar_add_text"
app:showAsAction="always"
android:visible="true"/>
</menu>
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.menu_main, menu);
this.menu = menu;
addChatItem = menu.findItem(R.id.action_start_chat);
addChatItem.setVisible(false);
return super.onCreateOptionsMenu(menu);
}
我想要隐身,但我无法使用LoginFragment
的公共元词ChatListFragment
再次显示它:
MainActivity:
MainActivity
ChatListFragment:
public void setAddChatVisibility(boolean visible) {
addChatItem.setVisible(visible);
invalidateOptionsMenu();
supportInvalidateOptionsMenu();
}
我该怎么做?提前谢谢。
答案 0 :(得分:1)
在invalidateOptionsMenu中,在再次调用的活动中调用方法onCreateOptionsMenu(菜单菜单)后,将可见值设置为false。
你可以在片段里面使用onCreateOptionMenu here
抱歉我的英文不好