0

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

}

请帮帮我。

4

2 回答 2

1

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

所以,如果你真的想每次都重新创建页面,你可以考虑使用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) {}
    });
于 2013-08-21T06:38:09.117 回答
0
@Override
    public void setUserVisibleHint(boolean isVisibleToUser) {
        // TODO Auto-generated method stub
        super.setUserVisibleHint(isVisibleToUser);
                if(isVisibleToUser){
                    //reset the values of your fragment 
                }

    }
于 2013-08-21T07:22:17.487 回答