我遇到了以下代码问题。 我有一个带有3个片段的viewpager
,我只想在其中一个上显示搜索图标。一开始我尝试通过片段添加搜索功能,但是当滑动到该页面时,菜单项的渲染速度很慢。现在我要将搜索图标添加到活动中,然后根据当前活动页隐藏或显示,但以下代码无效:
public class MyApp extends FragmentActivity implements
FragmentTeams.FragmentNotification,ViewPager.OnPageChangeListener,
OnNavigationListener{
...
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.activity_main, menu);
menuSearch = menu.findItem(R.id.menu_search);
mSearchView = new SearchView(this);
menuSearch.setActionView(mSearchView);
menuSearch.setVisible(false);
return true;
}
@Override
public void onPageSelected(int pageNum) {
if(pageNum== 1){
ActionBar actionBar = MyApp.this.getActionBar();
actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_LIST);
menuSearch.setVisible(true);
invalidateOptionsMenu();
}else{
ActionBar actionBar = MyApp.this.getActionBar();
actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_STANDARD);
menuSearch.setVisible(false);
invalidateOptionsMenu();
}
}
虽然上述代码似乎在 onCreateOptionsMenu
方法中创建并隐藏了图标,但当移动到其他位置时该图标不会重新启用。
虽然上述代码似乎在 onCreateOptionsMenu
方法中创建并隐藏了图标,但当移动到其他位置时该图标不会重新启用。
pageNum ==1
有人可以给我一些见解,解释为什么会发生这种情况吗?
supportInvalidateOptionsMenu()
。 - IronBlossom