有两种实现方式,一种是 fragmentActivity + FragmentPagerAdapter (Fragment,FragmentManager需要导包:android.support.v4.app.)

另一种是 Activity + PagerAdapter(Fragment,FragmentManager需要导包:android.app.)

1. fragmentActivity + FragmentPagerAdapter

自定义FragmentPagerAdapter只需要重写: getItem(),getCount() 方法

2. Activity + PagerAdapter

自定义的 PagerAdapter 需要重写以下方法:

instantiateItem(ViewGroup, int)
destroyItem(ViewGroup, int, Object) //记得删除 super.destroyItem(container, position, object);否则报异常:UnsupportedOperationException,原因查看源码
getCount()
isViewFromObject(View, Object)

需要添加 Title 时还需要重写 getPageTitle() 方法

重写 :instantiateItem(ViewGroup, int)

        @Override
public Object instantiateItem(ViewGroup container, int position) {
Fragment fragment = mList.get(position);
if (!fragment.isAdded()) {
FragmentTransaction saction = mFragManager.beginTransaction();
saction.add(fragment, fragment.getClass().getSimpleName());
//只有commit才会执行
saction.commit();
//executePendingTransactions--立即执行
mFragManager.executePendingTransactions();
}
View view = fragment.getView();
container.addView(view);
return view;
}

重写 :isViewFromObject(View, Object)

        @Override
public boolean isViewFromObject(View view, Object object) {
return view == object;
}

注意:自定义Fragemt 时,必须重写 onCreateView() 方法

使用FragmentTransaction,移除fragment时需要addtobackstack()否则无法回退(fragement 在移除时被销毁)

 

viewPager + fragment的更多相关文章

  1. ViewPager+Fragment取消预加载(延迟加载)(转)

    原文:http://www.2cto.com/kf/201501/368954.html 在项目中,都或多或少地使用的Tab布局,所以大都会用到ViewPager+Fragment,但是Fragmen ...

  2. Android中ViewPager+Fragment取消(禁止)预加载延迟加载(懒加载)问题解决方案

    转载请注明出处:http://blog.csdn.net/linglongxin24/article/details/53205878本文出自[DylanAndroid的博客] Android中Vie ...

  3. Android - ViewPager+Fragment初始化问题

    Android应用开发中,经常会用到ViewPager + Fragment,虽然效果不错,但随之而来的还有一些问题,下面就说说其中的初始化问题. ViewPager初始化时会预加载前后的2个页面,即 ...

  4. Android ViewPager Fragment使用懒加载提升性能

     Android ViewPager Fragment使用懒加载提升性能 Fragment在如今的Android开发中越来越普遍,但是当ViewPager结合Fragment时候,由于Androi ...

  5. ViewPager -- Fragment 切换卡顿 性能优化

    当ViewPager切换到当前的Fragment时,Fragment会加载布局并显示内容,如果用户这时快速切换ViewPager,即 Fragment需要加载UI内容,而又频繁地切换Fragment, ...

  6. viewpager viewpager+fragment

    内页面  不单写页面   viewpager+布局 import java.util.ArrayList; import java.util.List; import android.os.Bundl ...

  7. 【原创】【ViewPager+Fragment】ViewPager中切换界面Fragment被销毁的问题分析

    ViewPager中切换界面Fragment被销毁的问题分析   1.使用场景 ViewPager+Fragment实现界面切换,界面数量>=3   2.Fragment生命周期以及与Activ ...

  8. 转:ViewPager+Fragment基本使用方法(附源码)

    ViewPager+Fragment可以做出多页面滑动效果,让我们的应用程序界面操作起来更加灵活 对于ViewPager和Fragment组件还不熟悉的朋友,可以先看看相关的资料 首先在activit ...

  9. 安卓开发之使用viewpager+fragment实现滚动tab页

    闲着.用viewpager+fragment实现了个滚动tab..轻拍,以后会陆续发先小东西出来..爱分享,才快乐.demo见附件.. package com.example.demo; import ...

  10. viewpager+fragment学习笔记

    有暇,总结一下viewpager+fragment的使用. 先来看看效果图: 有三个标题,三个fragment,滑动时标题的颜色会随着变化. MainActivity.java public clas ...

随机推荐

  1. CentOs下安装maven

    现有的一个项目使用了Maven来管理,源代码放到了Subversion中.虽然Maven管理项目很方便,但是部署起来还是很麻烦的.先要在本地生成项目jar包,上传到服务器,然后再重启服务.如果在服务器 ...

  2. 通过jxl 读取excel 文件中的日期,并计算时间间隔

    java读取excel里面的日期会出现相差8小时的问题. 比如excel里面有一个日期是:2012-7-2 17:14:03秒,用Cell cell=readSheet.getCell(colNo, ...

  3. 自动刷新页面为了session不过期

    为了保证在打开页面期间session不过期,估做了一个隐藏Iframe每隔若干秒来刷新一下页面,在隐藏页面给session赋值. <script type="text/javascri ...

  4. vue.js 渲染完成回调

    vue.js渲染完成后,想触发一些事情,写在哪里呢? 答案是mounted 例子: new Vue({ el:'#demo', data:{ text:'Hello' }, mounted:funct ...

  5. scrapy的scrapyd使用方法

    一直以来,很多人疑惑scrapy提供的scrapyd该怎么用,于我也是.自己在实际项目中只是使用scrapy crawl spider,用python来写一个多进程启动,还用一个shell脚本来监控进 ...

  6. python函数基础 与文件操作

    函数的定义 函数是通过赋值传递的,参数通过赋值传递给函数.def语句将创建一个函数对象并将其赋值给一个变量名,def语句的一般格式如下: def function_name(arg1,arg2[,.. ...

  7. livecd环境下chroot修复系统

    今天想升级centos5.7的glibc版本,想当然的把新编译的glibc的libc-2.7.so 复制到/lib64/libc-2.5.so lrwxrwxrwx root root Mar : / ...

  8. linux内核的makefile.txt讲解

    linux内核的linux-3.6.5\Documentation\kbuild\makefiles.txt Linux Kernel Makefiles This document describe ...

  9. mysql 5.7.16 远程连接

    1登录到mysql中,为root进行远程访问的授权,所以主机都可以链接 GRANT ALL PRIVILEGES ON . TO 'root'@'%'IDENTIFIED BY 'mypassword ...

  10. asp值mysql驱动

    http://www.sufeinet.com/thread-10278-1-1.html%20http://tool.sufeinet.com/CodePreview/CodeView.aspx?a ...