该Pager如何重新创建该页面

时间:2013-08-21 05:59:56

标签: android

我在我的应用程序中使用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;
    }

}
请帮助我。

2 个答案:

答案 0 :(得分:1)

我认为这并不容易,因为寻呼机本身支持滑动手势,这意味着如果用户滑动屏幕,它应该显示左页或右页,因此三个页面都是同时准备的。

因此,如果您确实希望每次都重新创建页面,可以考虑使用TabHostViewFlipper替代。

另一个选项是每当用户完全滑动页面时更新页面。您可以通过在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 
                }

    }