これを行う方法を決定することはできましたが、それが最善の方法であるかどうかはわかりません。私がしなければならなかったのは、FragmentPagerAdapter の実装にブール値を渡し、検索モードの場合にのみ 1 つのフラグメントを作成できるようにすることでした。
/**
* A {@link FragmentPagerAdapter} that returns a fragment corresponding to
* one of the sections/tabs/pages.
*/
public class SectionsPagerAdapter extends FragmentPagerAdapter {
boolean isSearching = false;
public SectionsPagerAdapter(FragmentManager fm, boolean isSearching) {
super(fm);
this.isSearching = isSearching;
}
@Override
public Fragment getItem(int position) {
// getItem is called to instantiate the fragment for the given page.
Fragment fragment = null;
switch (position) {
case 0:
fragment = new UserGeneralFragment();
break;
case 1:
if (!isSearching) fragment = new CommentListFragment();
break;
}
return fragment;
}
@Override
public int getCount() {
if (!isSearching) return 2;
else return 1;
}
@Override
public CharSequence getPageTitle(int position) {
Locale l = Locale.getDefault();
switch (position) {
case 0:
return getString(R.string.activity_user_tab_general).toUpperCase(l);
case 1:
if (!isSearching) return getString(R.string.activity_user_tab_comments).toUpperCase(l);
break;
}
return null;
}
}