我使用Fragments,当我切换到实现public void onCreateOptionsMenu(Menu menu, MenuInflater inflater)
的嵌套Fragment时,当我到达嵌套Fragment时,我的菜单会膨胀很多次。我如何避免这种情况?我还使用方法实现Fragment的构造函数:
setRetainInstance(true);
setHasOptionsMenu(true);
当我试图实现简单的解决方案时:
@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
// TODO Add your menu entries here
if(!isInflated)
{
inflater.inflate(R.menu.contacts_archive_menu, menu);
isInflated = true;
}
super.onCreateOptionsMenu(menu, inflater);
}
但是在屏幕旋转之后我的菜单并没有膨胀。
4条答案
按热度按时间whhtz7ly1#
我通过在离子化之前清除菜单来解决这个问题:
uwopmtnx2#
只需检查
menu
项的计数。意味着menu.size()==0
,没有menu
项存在,然后用layout menu
充气,否则根本不充气。r6hnlfcb3#
只覆盖invalidateOptionsMenu,例如:
ecbunoof4#
更换前使用。