Android:ViewPager中获取当前界面的Fragment
2016-05-20 16:27
519 查看
在项目中,有时会用到在ViewPager中显示同样类型的Fragment,同时这样的Fragment的个数是动态的,但是PagerAdapter没有给我们提供getCurrentFragment类似的方法。
通过查阅资料和看源码,PagerAdapter中有个setPrimaryItem(ViewGroup container, int position, Object object) 方法,我们在这里面将就可以获得当前的Fragment,我们将其记录下来,然后在自己的PagerAdapter中写个getCurrentFragment() 方法,就可以在外部获取当前界面的Fragment。
这里的FragmentStatePagerAdapter是继承与PagerAdapter的。
在Activity 中只需这样调用:
参考:http://www.cnblogs.com/englefly/p/4222953.html
通过查阅资料和看源码,PagerAdapter中有个setPrimaryItem(ViewGroup container, int position, Object object) 方法,我们在这里面将就可以获得当前的Fragment,我们将其记录下来,然后在自己的PagerAdapter中写个getCurrentFragment() 方法,就可以在外部获取当前界面的Fragment。
public class XXXPagerAdapter extends FragmentStatePagerAdapter { private XXXFragment mCurrentFragment; private List<XXX> mList; public XXXPagerAdapter(FragmentManager fm, List<XXX> list) { super(fm); mList = list; } @Override public Fragment getItem(int position) { return XXXFragment.newInstance(mList.get(position)); } @Override public int getCount() { return mList == null ? 0 : mList.size(); } @Override public Object instantiateItem(ViewGroup container, int position) { XXXFragment fragment = (XXXFragment) super.instantiateItem(container, position); return fragment; } //----------------------下面才是重点----------------- @Override public void setPrimaryItem(ViewGroup container, int position, Object object) { mCurrentFragment = (XXXFragment) object; super.setPrimaryItem(container, position, object); } public XXXFragment getCurrentFragment() { return mCurrentFragment; } }
这里的FragmentStatePagerAdapter是继承与PagerAdapter的。
在Activity 中只需这样调用:
mPagerAdapter.getCurrentFragment();
参考:http://www.cnblogs.com/englefly/p/4222953.html
相关文章推荐
- 打造Android集合控件数据绑定(支持添加监听,支持AbsListView与RecycleView,支持异步加载等)(二)ORM注解以及解析
- Service与Android系统实现(1)-- 应用程序里的Service
- 【Android】22、活动的启动模式——singleInstance
- 【腾讯Bugly干货】Android性能优化典范之多线程篇
- Android Studio 快捷键使用
- Android 自定义日历控件
- 通过案例快速学会Picasso图片缓存库
- android service
- Android 获取dip数据的三种途径
- Android 中获取Apk的包名和类名的实现方法
- Android上下文context
- Android6.0权限管理
- MaterialDesign之Dialog
- 手机一键锁屏
- Android图片压缩、加水印
- Android的系统服务一览
- Android签名简介
- Colorful 动态换肤开源库
- Android实现中国象棋附源码下载
- AndroidSocketClient