我终于赶上Android 4.0+世界并将我的活动转换为片段。我正在实现滑动视图样式选项卡,并且需要能够根据我传入活动的额外内容禁用选项卡。我这样做的旧方法就是这样,但我似乎无法通过滑动视图弄清楚如何做到这一点。
tabHost.getTabWidget().getChildAt(1).setVisibility(View.GONE);
tabHost不再适用。现在我有一个FragmentPagerAdapter和ViewPager,但不知道如何使用它们来禁用选项卡。提前感谢任何指针!
答案 0 :(得分:0)
我设法确定如何做到这一点,但我不知道这是最好的方法。我必须做的是将一个布尔值传递给我的FragmentPagerAdapter实现,并且只有在我处于搜索模式时才允许创建一个片段。
/**
* 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;
}
}