我有一个带自定义适配器的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);
}
就像创建了新片段一样,但是加载了旧片段,该片段仍然可以在屏幕上看到,并且不会暂停或销毁。