我在我的应用程序中使用Pager。传呼机会记住左右一页。我希望Pager不记得页面。我希望它总是重新创建页面。我怎么能这样做? 我的传呼机
private class MyFragmentPagerAdapter extends FragmentPagerAdapter {
public MyFragmentPagerAdapter(FragmentManager fm) {
super(fm);
}
@Override
public Fragment getItem(int position) {
Log.d(Tag, "getItem");
return PageFragment.newInstance(position);
}
@Override
public int getCount() {
MySqlCursorAdapter.prevDate = null;
Log.d(Tag, "getCount.. получаем количество страниц"+PAGE_COUNT);
return PAGE_COUNT;
}
@Override
public CharSequence getPageTitle(int position) {
Log.d(Tag, "getPageTitle");
return "Title " + position;
}
// Код из FragmentPagerAdapter.java
private String makeFragmentName(int viewId, long id) {
Log.d(Tag, "makeFragmentName");
return "android:switcher:" + viewId + ":" + id;
}
}
请帮助我。
答案 0 :(得分:1)
我认为这并不容易,因为寻呼机本身支持滑动手势,这意味着如果用户滑动屏幕,它应该显示左页或右页,因此三个页面都是同时准备的。
因此,如果您确实希望每次都重新创建页面,可以考虑使用TabHost或ViewFlipper替代。
另一个选项是每当用户完全滑动页面时更新页面。您可以通过在ViewPager中设置OnPageChangeListener来查看此时间。
mMyPager.setOnPageChangeListener(new ViewPager.OnPageChangeListener() {
@Override
public void onPageScrolled(int i, float v, int i2) {}
@Override
public void onPageSelected(int i) {
//do some update job here.
}
@Override
public void onPageScrollStateChanged(int i) {}
});
答案 1 :(得分:0)
@Override
public void setUserVisibleHint(boolean isVisibleToUser) {
// TODO Auto-generated method stub
super.setUserVisibleHint(isVisibleToUser);
if(isVisibleToUser){
//reset the values of your fragment
}
}