FragmentPagerAdapter中的片段未关闭/暂停

时间:2018-12-23 19:21:48

标签: android android-viewpager fragmentpageradapter

我有一个带自定义适配器的viewPager。第一次打开它工作正常。之后,当我重新打开该片段时,即使我创建了新的适配器,适配器也没有关闭或处于暂停状态,因此未加载适配器。似乎重新打开了旧版本,它仍然存在并且不调用onCreateView,因为没有传递给onPause。 这是我的包含ViewPager的片段

Count: 3

这是选项卡ShoppingListTabMissFragment中包含的Fragment之一:

@Override
public void onCreate(@Nullable Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
}

private void init() {
    view.findViewById(R.id.pb_loading).setVisibility(View.VISIBLE);

    viewPager = view.findViewById(R.id.vp_lists);
    addTabs();

    TabLayout tabLayout = view.findViewById(R.id.tl_tabs);
    tabLayout.setupWithViewPager(viewPager);

    fab.setVisibility(View.INVISIBLE);
}

private void addTabs() {
    adapter = new ViewPagerAdapter(getFragmentManager());
    ShoppingListTabMissFragment missFragment = new ShoppingListTabMissFragment();
    missFragment.context = context;
    missFragment.uid = uid;
    adapter.addFrag(missFragment, context.getString(R.string.tab_miss));
    ShoppingListTabListFragment listFragment = new ShoppingListTabListFragment();
    listFragment.context = context;
    listFragment.uid = uid;
    adapter.addFrag(listFragment, context.getString(R.string.tab_list));
    ShoppingListTabDoneFragment doneFragment = new ShoppingListTabDoneFragment();
    doneFragment.context = context;
    doneFragment.uid = uid;
    adapter.addFrag(doneFragment, context.getString(R.string.tab_done));
    viewPager.setAdapter(adapter);
}

就像创建了新片段一样,但是加载了旧片段,该片段仍然可以在屏幕上看到,并且不会暂停或销毁。

0 个答案:

没有答案