今天遇到一个问题,ViewPager+Fragment(1)中放ViewPager+Fragment(2)导致Fragment(2)不显示.
通常我们在使用ViewPager+Fragment做切换的时候,可能我们在编写数据适配器的时候会这样写
class FragmentPagerAdapter extends FragmentPagerAdapter {
private List<BaseTradeFragment> mFragments;
public FragmentPagerAdapter(FragmentManager fm,List<Fragment> fragments) {
super(fm);
this.mFragments = fragments;
}
@Override
public Fragment getItem(int position) {
return mFragments.get(position);
}
@Override
public boolean isViewFromObject(View view, Object object) {
return view == object;
}
@Override
public int getCount() {
return mFragments.size();
}
}
设置适配器的时候是这样写的FragmentPagerAdapter adapter = new FragmentPagerAdapter(getSupportFragmentManager(), fragments);
如果是在Activity中嵌套Fragment上面的这个写法是正确的,但是如果是在Fragment中嵌套Fragment的话,如果按照上面这样写的话,在切换Fragment的时候Fragment不显示。
把适配器改为 FragmentPagerAdapter adapter = new FragmentPagerAdapter(getChildFragmentManager(), fragments);