ViewPager
来源:互联网 发布:物流仓储软件供应商 编辑:程序博客网 时间:2024/06/02 02:56
摘自Android编程权威指南第二版
- 创建ViewPager
在XML布局中添加ViewPager
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_height="match_parent" android:layout_width="match_parent"> <android.support.v4.view.ViewPager android:id="@+id/activity_crime_pager_view_pager" android:layout_width="match_parent" android:layout_height="match_parent"> </android.support.v4.view.ViewPager></LinearLayout>
- fragment中
设置ViewPager的adapter 并实现它的getCount()和getItem(int)方法;
@Override protected void onCreate(Bundle savedInstanceState){ super.onCreate(savedInstanceState); setContentView(R.layout.crime_activity_pager); mCrimes=CrimeLab.get(this).getCrimes(); mViewPager=(ViewPager)findViewById(R.id.activity_crime_pager_view_pager); FragmentManager fragmentManager=getSupportFragmentManager(); mViewPager.setAdapter(new FragmentStatePagerAdapter(fragmentManager) { @Override public Fragment getItem(int position) { Crime crime=mCrimes.get(position); return CrimeFragment.newInstance(crime.getId()); } @Override public int getCount() { return mCrimes.size(); } });
- FragmentStatePagerAdapter与FragmentPagerAdapter
两个用法一致,各自采用的处理方法各有不同。- FragmentStatePagerAdapter
FragmentStatePagerAdapter会销毁不需要的fragment。事务提交后,activity的FragmentManager中的fragment会被彻底移除。 FragmentStatePagerAdapter类名中的“state”表明:在销毁fragment时,可在onSaveInstanceState(Bundle)方法中保存fragment的Bundle信息。用户切换回来时,保存的实例状态可用来恢复生成新的fragment。 - FragmentPagerAdapter
对于不再需要的fragment,FragmentPagerAdapter会选择调用事务的detach(Fragment)方法来处理它,而非remove(Fragment)方法。也就是说,FragmentPagerAdapter只是销毁了fragment的视图,fragment实例还保留在FragmentManager中。因此,FragmentPagerAdapter创建的fragment永远不会被销毁。
- FragmentStatePagerAdapter
第一种适合显示大量记录的fragment,节省内存。
第二种适合固定少量的fragment。
阅读全文
0 0
- Viewpager
- ViewPager
- ViewPager
- ViewPager
- ViewPager
- ViewPager
- viewpager
- ViewPager
- ViewPager
- ViewPager
- Viewpager
- viewpager
- ViewPager
- ViewPager
- ViewPager
- viewpager
- ViewPager
- ViewPager
- HBase之集群部署配置模板
- quartz 时间配置规则
- 滑动数组的相关问题(实时数据流)
- Spring配置多数据源
- 第二周周总结
- ViewPager
- PDCCH时域资源
- 安装codis1.9版本全程
- leetcode-54. Spiral Matrix(打印蛇形矩阵)
- Swift--06数组字典
- 【腾讯Bugly干货分享】Android 插件技术实战总结
- 青蛙的约会(扩展欧几里得解同余方程)
- QT:标准对话框
- leetcode 3sum问题