У меня есть ViewPager с пользовательским адаптером.Первый раз, когда он открывается, он работает нормально.После, когда я снова открываю фрагмент, адаптер не загружается, потому что он не закрывается и не останавливается, даже если я создаю новый адаптер.Кажется, снова открывается старый, который еще жив и не вызывает onCreateView, потому что не переходит и на onPause.Это мой фрагмент, содержащий ViewPager
@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);
}
Это один из фрагментов, включенных во вкладки, ShoppingListTabMissFragment:
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.view_miss, container, false);
lv_list = view.findViewById(R.id.lv_list);
return view;
}
@Override
public void onResume() {
firebaseShoppingList = new FirebaseShoppingList(context, uid);
if (!MainApplication.firebaseShoppingLists.contains(firebaseShoppingList)) {
MainApplication.firebaseShoppingLists.add(firebaseShoppingList);
firebaseShoppingList.setFirebaseListener();
} else {
int index;
index = MainApplication.firebaseShoppingLists.indexOf(firebaseShoppingList);
firebaseShoppingList = MainApplication.firebaseShoppingLists.get(index);
}
firebaseShoppingList.setFirebaseUpdateDataListener(this);
updateList();
super.onResume();
}
Это похоже на то, что новый фрагмент создан, но загруженстарый, который все еще виден на экране и не помещен в паузу или уничтожен.