ViewPager 和Fragment 的一点点交互心得
来源:互联网 发布:淘宝金币一键领取源码 编辑:程序博客网 时间:2024/05/16 04:57
这几天在写viewpager 和fragment 的 一个组合,出现在当前页面的时候,setCurrentItem()
的方法没有起到什么作用。
这是因为 ViewPager 的缓存原因,所以只能另辟他径。在 adapger 中用集合来保存每一个 Fragment 的对象,用到的时候直接从中取出来
public class PagerFragmentAdapter extends FragmentStatePagerAdapter { private FragmentManager fm; private Map<String,Fragment> mFragments = new HashMap(); private List<String> mStrings = new ArrayList<>(); FragmentView fv; public PagerFragmentAdapter(FragmentManager fm, List<String> mStrings) { super(fm); this.fm = fm; this.mStrings = mStrings; } @Override public Fragment getItem(int position) { FragmentView fv = FragmentView.newInstance(mStrings.get(position)); mFragments.put(String.valueOf(position),fv); return fv; } @Override public int getCount() { return mStrings.size(); } /** * 取出当前显示的Fragment * @param positon 当前的位置 * @return */ public Fragment getCurrentFragment(int positon){ return mFragments.get(String.valueOf(positon)); }}
这样在Activity 中就拿到了当前显示的Fragment ,可以直接调用Fragment 中写好的更新方法,更新Fragment 中的数据
int position = mViewPager.getCurrentItem();FragmentView fv =(FragmentView) mPagerFragmentAdapter.getCurrentFragment(positon);fv.xxxx();
这样可以忽略ViewPager 的postion 和选中的position 一致不能即时更新Fragment 中的数据.
也可以判断一下数据
//其他的可以根据这个继续写 if (viewPager.getCurrentItem() == 0) { //当前页 int position = mViewPager.getCurrentItem(); FragmentView fv = (FragmentView)mPagerFragmentAdapter.getCurrentFragment(positon); fv.updateView(); //后一页 fv = (FragmentView)mPagerFragmentAdapter.getCurrentFragment(positon+1); v.updateView(); }
这样就可以都即时刷新数据。
0 0
- ViewPager 和Fragment 的一点点交互心得
- 实现raidogroup与fragment+viewpager的交互
- Fragment与Viewpager、Fragment与Activity的交互startActivityForResult
- ViewPager和fragment的使用
- ViewPager和Fragment的结合
- ViewPager 和Fragment的使用
- ViewPager和Fragment的使用
- fragment和viewpager的使用
- viewpager和fragment的联动
- 多一点点的心得
- Fragment和Activity的交互
- Fragment和Activity的交互
- Fragment和Activity的交互
- Fragment和Activity的交互
- Activity和Fragment的交互
- Fragment和Activity的交互
- Activity 和 Fragment 的交互
- Fragment和Activity的交互
- reids集群注意事项-整点东西可真费劲
- PHP写接口需要注意的问题
- 【WEB前端】COOKIES与SESSION的区别
- recv()与send()设置超时
- js在线编辑器
- ViewPager 和Fragment 的一点点交互心得
- qt窗口透明
- S2 优化MySchool 数据库设计 第四章
- OPenCV边缘检测滤波器
- Android Studio使用Lint进行代码检查
- spring四种依赖注入方式
- 兰台赵家史
- 访问页面表单自动提交
- SpringMvc拦截器配置