ViewPager причина аварии

У меня есть viewpager. Viewpager имеет пять фрагментов. И эти фрагменты имеют дочерние фрагменты. При запуске приложения происходит сбой. Если я комментирую функцию resetMenu (), она работает. В чем проблема?

HomeActivity.Ява

 @Override
    public void onPageSelected(int position) {

        listeners[beforePagerPosition].onViewPaused();
        tabLayout.getTabAt(beforePagerPosition).getIcon().setAlpha(getResources().getInteger(R.integer.tab_unselected_alpha));

        beforePagerPosition = position;
        tabLayout.getTabAt(position).getIcon().setAlpha(getResources().getInteger(R.integer.tab_selected_alpha));
        listeners[position].onViewResumed();
        resetMenu();
        hideKeyboard();
    }

    @Override
    public void onPageScrollStateChanged(int state) {

    }

    private void resetMenu() {
        if (getSupportFragmentManager() != null) {
            ParentFragment parentFragment = (ParentFragment) listeners[viewPager.getCurrentItem()];
            FragmentManager fm = parentFragment.getChildFragmentManager();
            if (fm != null && fm.getBackStackEntryCount() > 0) {
                FragmentManager.BackStackEntry backStackEntry = fm.getBackStackEntryAt(fm.getBackStackEntryCount() - 1);
                String str = backStackEntry.getName();
                BaseMenuFragment fragment = (BaseMenuFragment) fm.findFragmentByTag(str);
                fragment.setHasOptionsMenu(true);
            }
        }
    }

1 ответ

  1. ОК. Я нашел ответ. Я добавил управление для ParentFragment isAdded().

    ParentFragment parentFragment = (ParentFragment) listeners[viewPager.getCurrentItem()];
        if(parentFragment.isAdded()){
           ....
    
        }