次のコードをうまく動作させるのに問題があります。3 つのフラグメントを持つ がありviewpager
、検索アイコンを 1 つだけに表示したいと考えています。最初にフラグメントによる検索機能を追加しようとしましたが、そのページにスワイプするとメニュー項目のレンダリングが遅くなりました。私は現在、検索アイコンをアクティビティに追加し、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
なぜこれが起こっているのかについて、誰かが私に洞察を与えることができますか?