Когда экран повернут, Android вызывает событие OnPageChangeListener.onPageSelected до вызова FragmentPagerAdapter.instantiateItem.Android ViewPager.OnPageChangeListener проблема вращения жизненного цикла
Это кажется принципиально нарушенным для меня. Обычно я получаю ссылку на фрагмент во время вызова метода instantiateItem. Поскольку onPageSelected вызывается сначала, моя ссылка на фрагмент равна null. Каков наилучший способ обойти эту проблему? См. Ниже код для лучшего объяснения:
(Код написан на C# с использованием Mono для Android, но должен быть почти идентичен эквиваленту Java).
адаптер:
public class MainPagerAdapter : FragmentPagerAdapter
{
public Fragment[] Fragments { get; private set; }
public override Java.Lang.Object InstantiateItem(ViewGroup view, int index)
{
var o = base.InstantiateItem(view, index);
Fragments[index] = (Fragment)o;
return o;
}
...
}
СЛУШАТЕЛЬ:
public class TabPagerListener : Java.Lang.Object, ViewPager.IOnPageChangeListener, TabPageIndicator.IOnTabReselectedListener
{
public void OnPageSelected(int tabIndex)
{
var tabActivity = (ITabActivity)Instance;
var currentFragment = TabAdapter.Fragments[TabPager.CurrentItem];
//currentFragment will be null since InstantiateItem hasn't been called yet
}
...
}
Спасибо за отзыв – craigrs84