0

После замены ViewPager с одним фрагментом, как например:OnPageChangeListener еще активна после изменения фрагмента, вызывает IllegalStateException

fragmentManager.beginTransaction().replace (R.id.content_frame, fragment).commit(); 

Если я прокручиваю справа - что не надо мне можно, потому что есть только одна страница - Я получаю IllegalStateExceptio на onPageSelected, потому что очевидно, что OnPageChangeListener все еще активен.

Как подойти к этому?

mViewPager.setOnPageChangeListener (new ViewPager.OnPageChangeListener() { 

     @Override 
     public void onPageSelected (int position) { 
      mActionBar.setSelectedNavigationItem (position); 
     } 

     @Override 
     public void onPageScrolled (int arg0, float arg1, int arg2) { 
     } 

     @Override 
     public void onPageScrollStateChanged (int arg0) { 
     } 
    }); 

ответ

0

Вот хакерское обходное решение. Там должен быть лучший способ, но он работает. Чтобы отключить пейджинг, установите адаптер viewpager в один с 0 страницами.

public class EmptyPagerAdapter extends FragmentStatePagerAdapter { 

public EmptyPagerAdapter (FragmentManager fm) { 
    super (fm); 
} 

@Override 
public Fragment getItem (int index) { 
    return null; 
} 

@Override 
public int getCount() { 
    return 0; 
} 

}

Смежные вопросы