项目中要使用viewPager同时要实现动态增加删除的效果。
首先实现viewPager和fragment的嵌套使用,在google的Android开发文档里有现成的例子:地址如下:
https://developer.android.com/reference/android/support/v4/app/FragmentStatePagerAdapter.html
例子里是固定的10个页面,现在开始实现动态增加页面的功能:(先讲过程代码,最后附完整代码)
1.在调用类里面实现一个Fragment列表用于增加、删除Fragment;
privateArrayList fragments= null;
fragments= newArrayList<>();
2.在列表里面添加几个fragment。其中 ArrayListFragment.newInstance()是自定义的一个framgent类,这句话用于new一个新的实例fragment页面
fragments.add(ArrayListFragment.newInstance(1));fragments.add(ArrayListFragment.newInstance(2));fragments.add(ArrayListFragment.newInstance(3));
3.在自定义的Adaper里面定义保持fragment的list
privateArrayList fragments= null;
同时在构造函数里面添加一个ArrayList 的参数,用于把外面的fragment list 传递进来。
4.在调用类添加俩个函数,分别是添加页面和删除页面:添加和删除的原理是,通过改变list里面的fragment内容,并刷新adaper来实现动态增加,删除的功能
public voidAddFragment() {
fragments.add(ArrayListFragment.newInstance(5));mAdapter.notifyDataSetChanged();}
public voidDelFragment() {
fragments.remove(fragments.size()-1);mAdapter.notifyDataSetChanged();}
5.注意事项,要实现这一的功能需要几个注意事项:
(1)自定义的Adapter 要继承自 FragmentStatePagerAdaper
(2)自定义的Adapter 要重写 getItemPosition 函数:
@OverridepublicintgetItemPosition(Object object) {// TODO Auto-generated method stubreturnPagerAdapter.POSITION_NONE;}
这里是参考了一篇博客的内容:地址如下:
http://blog..net/quanjin24k/article/details/17318151
动手实现了效果,所以总结一下,贴出完整代码,以方便大家快捷的使用:
以下为完整代码:
MainActivity.java
package com.robert.viewpagertest;
import android.content.Context;
import android.os.Bundle;
import