TabLayout第二次显示空白片段

时间:2017-01-24 13:58:43

标签: java android android-fragments android-tablayout

在我的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)

1 个答案:

答案 0 :(得分:0)

它看起来更愚蠢,删除了这一行:

 if (posts.size() == 0) {
来自Fragment中的loadItems的

使其按预期工作。 感谢cricket_007的建议!

相关问题