FragmentPagerAdapter第二次添加时不会对片段进行膨胀(在自定义视图上)

时间:2016-10-15 14:23:19

标签: java android android-viewpager

我有一个自定义视图,扩展了RelativeLayout,其中我有一个viewpager,非常像this card

问题:当我第一次将视图添加到布局中时,一切都很好,但是当我离开当前片段并返回它时,FragmentPagerAdapter上没有任何片段。调用所有方法,但片段不会膨胀

自定义视图和适配器:

SectionsPagerAdapter adapter = new SectionsPagerAdapter(((MainActivity)context).getSupportFragmentManager());
viewPager.setAdapter(adapter);
viewPager.setOffscreenPageLimit(5);
tabLayout.setupWithViewPager(viewPager);

-

public class SectionsPagerAdapter extends FragmentPagerAdapter {

    SectionsPagerAdapter(FragmentManager fm) {
        super(fm);
    }

    @Override
    public Fragment getItem(int position) {

        switch (position) {
            case 0:
                return Fragment_HourlyPage.newInstance();
            case 1:
                return Fragment_HourlyPage.newInstance();
            case 2:
                return Fragment_HourlyPage.newInstance();
            case 3:
                return Fragment_HourlyPage.newInstance();
            case 4:
                return Fragment_HourlyPage.newInstance();
        }
        return null;
    }

    @Override
    public int getCount() {
        return 5;
    }

    @Override
    public CharSequence getPageTitle(int position) {
        switch (position) {
            case 0:
                return "10AM - 11AM";
            case 1:
                return "11AM - 12AM";
            case 2:
                return "12AM - 1PM";
            case 3:
                return "1PM - 2PM";
            case 4:
                return "2PM - 3PM";
        }
        return null;
    }
}

将自定义视图添加到布局中:

//inside AsyncTask
CardActivityMonitoring card = new CardActivityMonitoring(getActivity());
container.addView(card);

更改屏幕片段:

public void openDashboard() {
    Fragment_Tabs main = new Fragment_Tabs();
    fm.beginTransaction()
            .replace(R.id.mainContainer, main)
            .addToBackStack(null)
            .commit();
}

//I'm switching between these

public void openSettings() {
    Fragment_Settings frag = new Fragment_Settings();
    fm.beginTransaction()
            .replace(R.id.mainContainer, frag)
            .addToBackStack(null)
            .commit();
}

使用FragmentStatePageAdapter替换FragmentPagerAdapter可以解决此问题,但由于某种原因,加载视图需要2秒钟。

我尝试使用片段而不是自定义视图,但同样的问题。

0 个答案:

没有答案