2016-12-30 5 views
0

私はビューページャーを持っています。ビューページには5つのフラグメントがあります。これらの断片には子断片があります。私は私のアプリを起動すると、クラッシュします。 resetMenu()関数をコメントアウトしても機能します。何が問題ですか?ViewPagerがクラッシュする

HomeActivity.java

@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); 
      } 
     } 
    } 
+3

クラッシュログを投稿できますか? –

+1

あなたのlogcatを投稿してください。 –

+1

あなたのlogcatを投稿 –

答えて

0

OK。私は答えを見つけた。私はParentFragment isAdded()のコントロールを追加しました。

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

    } 
関連する問題