即使父Fragment未处于活动状态,ViewPager片段也会加载

时间:2017-01-01 02:17:12

标签: android android-viewpager pagerslidingtabstrip

背景

我的App中有单个活动,根据一些菜单项选择加载2个片段

public class ActivityMain extends AppCompatActivity{
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        if(savedInstanceState == null) {
            loadFragment(1); // DEFAULT FRAGMENT, AT THE BEGINNING
        }
    }
    ..........................
    ..........................
    // This method is called above, ALSO onItemClick in the Navigation Drawer (code not included for brevity)
    public void loadFragment(int position) {
        Fragment fragment = null;
        switch (position) {
            case 1:
                fragment = new Fragment1();
                break;
            case 2:
                fragment = new Fragment2();
                break;
            default:
                break;
        }
        if (fragment != null) {
            getFragmentManager().beginTransaction().replace(R.id.fragment_container, fragment, "frag_" + position).addToBackStack(null).commit();
        }
    }
}

"片段1"是一个在TextView中具有固定文本的简单片段。 " Fragment2"使用SlidingTabLayout加载片段" FragmentViewPager"在viewpager中使用FragmentStatePagerAdapter。

我面临的问题:

即使我删除了#34; Fragment2"来自Activity的Frame Layout(使用getFragmentManager()。beginTransaction()。remove),Fragment" FragmentViewPager"不会被破坏,而是每次活动恢复时它都会恢复。

问题

为什么FragmentViewPager不会被" Fragment2"?

破坏

1 个答案:

答案 0 :(得分:0)

如果您正在使用FragmentStatePagerAdapter,那么这不会破坏片段,当您滑动并返回该片段时,它将显示旧数据而不刷新。因为没有被viewpager破坏。