【发布时间】:2012-11-05 10:09:59
【问题描述】:
我无法运行以下代码。我有一个带有 3 个片段的 viewpager,我希望一个搜索图标只显示在一个片段上。我开始尝试通过片段添加搜索功能,但是滑动到该页面时菜单项的呈现速度很慢。我现在正在将搜索图标添加到活动中,然后根据活动的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 处的图标,但在移动到时它不会重新启用
pageNum ==1
谁能告诉我为什么会发生这种情况?
【问题讨论】:
标签: android android-actionbar android-viewpager