[英]FragmentStatePagerAdapter doesn't call getItem on tab reselection
我有一個像這樣的復雜UI設置:
主片段->具有ActionBar.TabListener的片段->具有FragmentStatePagerAdapter的片段-> ListFragment
當應用程序加載並且我第一次使用FragmentStatePagerAdapter進入Fragment時,此方法有效,但是當我再次使用FragmentStatePagerAdapter和ListFragment進入Fragment時,我遇到了問題(因此轉到另一個選項卡,然后使用FragmentStatePagerAdapter)。 當我第二次選擇FragmentStatePagerAdapter的選項卡時,不會調用getItem方法。
我嘗試用相同的結果擴展FragmentStatePagerAdapter和FragmentPagerAdapter。 我寧願使用FragmentPagerAdapter來解決可用性問題,因為我只有3個要分頁的片段。
這是我的一些代碼。 如果需要其他代碼,請告訴我:
public class ScreenSlidePagerAdapter extends FragmentStatePagerAdapter
{
TrendsLV[] arrayOfTrendsFragments;
public ScreenSlidePagerAdapter(FragmentManager fragmentManager)
{
super(fragmentManager);
arrayOfTrendsFragments = new TrendsLV[NUM_PAGES];
arrayOfTrendsFragments[0] = new TrendsLV(arrayOfMonths, 0);
arrayOfTrendsFragments[1] = new TrendsLV(arrayOfMonths, 1);
arrayOfTrendsFragments[2] = new TrendsLV(arrayOfMonths, 2);
}
@Override
public Fragment getItem(int position)
{
return arrayOfTrendsFragments[position];
}
@Override
public int getCount()
{
return NUM_PAGES;
}
}
上面的代碼如何被調用:
public class TrendsPagerHolder extends Fragment implements ResultsListener
{
private void displayData()
{
if(getResources().getConfiguration().orientation == Configuration.ORIENTATION_PORTRAIT)
{
if (pagerAdapter == null)
pagerAdapter = new ScreenSlidePagerAdapter(getFragmentManager());
pager.setAdapter(pagerAdapter);
pager.setCurrentItem(0);
}
}
}
我也希望這不是重復的。 我發現了FragmentStatePagerAdapter的其他問題,但沒有解決我的特定問題的方法。
謝謝。
我非常確定在getItemPosition(Object object)中返回POSITION_NONE將解決您的問題:
public int getItemPosition(Object object){
return POSITION_NONE;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.