ViewPager与support包里的Fragment家族一起使用

来源:互联网 发布:java如何实现高并发 编辑:程序博客网 时间:2024/05/17 08:53

近来有这个需求,滑动的ViewPager+Fragment可以给用户不错的体验,而且我们使用起来,也很方便,代码结构也很清晰。

使用起来有几个要点:


1.Activity 继承 android.support.v4.app.FragmentActivity。

public class DeviceListActivity extends FragmentActivity

2.你的 ContentView里要有一个ViewPager。


3.给ViewPager setAdapter()

mViewPager.setAdapter(new MyFragmentPagerAdapter(getSupportFragmentManager()));

getSupportFragmentManager()是FragmentActivity的方法。


4.这个PagerAdapter可根据需要来写,比如下边这个:

    private class MyFragmentPagerAdapter extends FragmentPagerAdapter {        public MyFragmentPagerAdapter(FragmentManager fm) {            super(fm);        }        @Override        public Fragment getItem(int position) {            return mFragmentBuffer.get(position);        }        @Override        public int getCount() {            return mFragmentBuffer.size();        }    }

5. 这样就ok了,这种方式也有一定的弊端,大家可以自己找找-v-


这种方式的弊端就是,不可见的fragment会被destroy,可见时又会被instantiate,这样页面上展开的列表就又要重新加载了。

解决办法也很简单,重写FragmentPagerAdapter的destroyItem()方法,把super.destroyItem()去掉就好了。