首页 文章

具有listviews和fragmentstatepageradapter的ViewPager

提问于
浏览
0

我有一个带有5个标签的viewpager . 在viewpager的每个片段中,我有一个listview,其中填充了我从服务器获取的数据(服务器调用是使用AsyncTask完成的) .

我也使用Fragmentstatepageradapter来实现最流畅的导航,但是当我从具有listview的片段导航到另一个具有listview的片段时,似乎有些东西不能正常工作 .

我想知道为什么,因为数据已经存储,我希望viewpager从堆栈弹出这些片段 .

这是我的适配器:

public class TabsPagerAdapter extends FragmentStatePagerAdapter {

    public TabsPagerAdapter(FragmentManager fm) {
        super(fm);
    }

    @Override
    public Fragment getItem(int index) {
        switch (index){
            case 0:
               return new Fragment1();
            case 1:
                return new Fragment2();
            case 2:
                return new Fragment3();
            case 3:
                return new Fragment4();
            case 4:
                return new Fragment5();
        }
        return null;
    }

    @Override
    public int getCount() {
        return 5;
    }
}

经过一番研究后,我仍然无法顺利存储/恢复状态 . 我已经尝试使用 myViewPager.setOffscreenPageLimit(4); ,它提供了更好的性能,但标签导航仍然有点滞后 .

Do I have to override instantiateItem/destroyItem in order to save fragment states?

1 回答

  • 0

    问题由 changing the layout_height param of the ListView from wrap_content to match_parent. 解决

    如果设置为wrap_content的高度,将调用适配器内的getView方法多次,这就是选项卡之间导航速度慢的原因 .

    我希望这会有所帮助,回答发现here .

相关问题