在我的Android应用程序中,我使用带有TabLayout
的{{1}}来显示动态生成的片段。
它首次正确显示了碎片,但当回到已经查看过的碎片时,它们显示的是空白页...
我已经对此进行了调查,似乎有两种解决方法:
使用FragmentStatePagerAdapter
代替FragmentStatePagerAdapter
,我已经这样做了,并没有改变任何内容。
更改
FragmentPagerAdapter
成:
adapter = new FragmentStatePagerAdapter(*getSupportFragmentManager*());
我无法做到,因为我在adapter = new FragmentStatePagerAdapter(*getChildFragmentManager*());
并且此方法在片段中...
有没有办法解决这个问题而不将AppCompatActivity
的活动扩展到我项目中的其他内容?
代码:
FragmentActivity
实施:
private class SubsPagerAdapter extends FragmentStatePagerAdapter {
private final ArrayList<Fragment> fragmentsList = new ArrayList<>();
private final ArrayList<String> titleList = new ArrayList<>();
SubsPagerAdapter(FragmentManager manager) {
super(manager);
}
@Override
public Fragment getItem(int position) {
return fragmentsList.get(position);
}
@Override
public int getCount() {
return fragmentsList.size();
}
void addFragment(Fragment fragment, String title) {
fragmentsList.add(fragment);
titleList.add(title);
}
@Override
public CharSequence getPageTitle(int position) {
return titleList.get(position);
}
@Override
public Parcelable saveState() {
return null;
}
}
编辑 - 片段代码:
subsPager = (ViewPager) findViewById(R.id.subsPager);
tabLayout = (TabLayout) findViewById(R.id.tabs_view);
subsPager.setAdapter(adapter);
tabLayout.setupWithViewPager(subsPager)
答案 0 :(得分:0)