【发布时间】:2014-06-03 14:48:02
【问题描述】:
我的 FragmentPagerAdapter 携带 ViewPager.OffScreenPageLimit 的 3 个页面,始终显示最后加载的页面
我使用 ViewPager 来显示片段。
我的 ViewPager
private static final int MONTH_SIZE = 12;
viewPager.setAdapter(new CalendarFragmentPagerAdapter(getChildFragmentManager()));
viewPager.setCurrentItem(GregorianCalendar.getInstance().get(Calendar.MONTH));
viewPager.setClickable(true);
viewPager.setSaveEnabled(false);
viewPager.setOffscreenPageLimit(1);
我的 FragmentPageAdapter:
public class CalendarFragmentPagerAdapter extends FragmentPagerAdapter {
/**
* @param fm
*/
public CalendarFragmentPagerAdapter(FragmentManager fm) {
super(fm);
}
/**
*/
@Override
public Fragment getItem(int pageRequest) {
return new CalendarFragment(pageRequest);
}
/**
*/
@Override
public int getCount() {
return MONTH_SIZE - 1;
}
/**
*/
@Override
public CharSequence getPageTitle(int position) {
switch (position) {
case 0:
return getString(R.string.monthJanuary);
case 1:
return getString(R.string.monthFebruary);
case 2:
return getString(R.string.monthMarch);
case 3:
return getString(R.string.monthApril);
case 4:
return getString(R.string.monthMay);
case 5:
return getString(R.string.monthJune);
case 6:
return getString(R.string.monthJuly);
case 7:
return getString(R.string.monthAugust);
case 8:
return getString(R.string.monthSeptember);
case 9:
return getString(R.string.monthOctober);
case 10:
return getString(R.string.monthNovember);
case 11:
return getString(R.string.monthDecember);
default:
return "";
}
}
/**
* @hide
*/
@Override
public int getItemPosition(Object object) {
return POSITION_NONE;
}
}
我的片段:
// Nothing especial
List<CalendarEntry> events = getEvents(indexByCalendarFragmentPagerAdapter);
listView = (ListView) view.findViewById(R.id.listView_calendar_screen);
listView.setAdapter(new CalendarCustomAdapter(getActivity().getBaseContext(), events));
listView.setClickable(true);
错误是例如显示在五月,二月的事件
已经尝试了好几种方法都不能解决问题,有人可以帮帮我吗?
【问题讨论】:
-
因为你设置了计数 @Override public int getCount() { return MONTH_SIZE - 1; } 删除 -1
-
什么是 MONTH_SIZE 变量?
-
MONTH_SIZE 是个常数,一年中的月数,我忘了放她
-
更改为 MONTH_SIZE 后不断跳过几页。例如,显示 5 月份、2 月份的事件
标签: android android-viewpager fragment fragmentpageradapter