ViewPager冲突之(ViewPager与ViewPager+Fragment滑动栏冲突)
来源:互联网 发布:java b2b2c 开源 编辑:程序博客网 时间:2024/04/26 20:53
本文出自:http://blog.csdn.net/dt235201314/article/details/52673927
一丶简介
昨天参照扣丁学堂的写了滑动展示页,今天两个人代码一提交各种冲突
二丶效果展示,问题描述
如图可见下面导航切换栏,上面滑动切换栏,中间天周月切换按钮,中间滑动页面展示,还有个看不见的下拉刷新控件。
昨天测的问题:由于下拉刷新,导致滑动展示栏,左右滑动时不能有向下滑动趋势,不然滑动失败,这个需求所致暂可放下,索性滑动
切换栏与滑动展示没有冲突,当滑动展示页划到没有页面时会出发切换栏(这是可以的),就提交了代码
今天测得:1.当滑动栏切换一圈回到滑动展示页时,本是最后一页却能滑动了,结果空指针,原因下面小圆点空指针,真理设计是最后
一页不能滑动
2.修改中遇到(网上常见的一栏),切换一圈回来滑动展示页变成空白,也就是数据未保存
三丶问题分析及解决
滑动展示页代码参照:http://blog.csdn.net/dt235201314/article/details/52673452
遇到这种问题,我是蒙逼的,没见过怎么会解决,所以呢,这里得分析都是虐出来得
第一步:让他不报错,注释掉小圆点的变化影响空指针的代码
第二步:反复观察,发现每次滑动滑动展示栏的页面成倍增加(前面一心想着图片滑动和小圆点对应,怎样实现,忽略了这个现象)
第三步:百度,谷歌,一搜一大堆,各种ViewPager得冲突,分析筛选,我要找的应该是ViewPager与ViewPager+Fragment滑动栏冲突
然而,寥寥无几,有几篇都是相似的提到改变一句就行。
mPager.setAdapter(new MyFragmentPagerAdapter(getActivity().getSupportFragmentManager(), fragmentsList));
解决办法:
将红色字体部分,用getChildFragmentManager() 替换。
mPager.setAdapter(new MyFragmentPagerAdapter(getActivity().getChildFragmentManager(), fragmentsList));
相关链接:http://blog.csdn.net/mybook1122/article/details/24003343?spm=5176.100239.blogcont.6.E0JNaC
于是,我也妄想一句代码解决问题,改起了同事的代码,然并卵,倒是看了几篇相关文章,有些原理是对的但不针对我的问题
然后了,熟悉了下viewpager的监听方法啊,fragment得生命周期啊,以及view得无限轮播效果,viewpager自定义等
ViewPager图片自动+手动左右无限轮播
Android自定义View——教你制作ViewPager(二)
第四步:学习总结回到代码,开始改
1.滑动切换栏切换后,会引起fragment数据未储存等现象,也就是跟生命周期相关,有些方法会重新调用。
2.断点调试,输出语句调试
发现:(修改后代码)
//初始化视图组件private void initViews() { viewPager = (ViewPager) mView.findViewById(R.id.viewpager); if(views.size() < 1){ views.add(getActivity().getLayoutInflater().inflate(R.layout.totalamount_layout, null)); views.add(getActivity().getLayoutInflater().inflate(R.layout.totalcount_layout, null)); } viewPager.setOnPageChangeListener(this); viewPager.setAdapter(new MyPagerAdapter());
onCreateView()方法重新调用导致intview重新调用的(也解释了页面成倍增加的原因)
所以添加判断即可(页面不增多,图片小圆点的切换就不用改,这样最简单)
这里如果把setadapter()放在判断外就回出现,网上常说的空白页,数据丢失
总结:改bug的能力得加强,断点调试,输出语句啊,对viewpager得认识加深了,觉得应该上升到自定义就好
保持学习,总是好的。
- ViewPager冲突之(ViewPager与ViewPager+Fragment滑动栏冲突)
- viewpager+fragment+viewpager+scrollview滑动冲突问题
- SwipRefreshView与ViewPager滑动冲突
- TabHost与ViewPager滑动冲突
- Android解决ViewPager嵌套Fragment,Fragment嵌套ViewPager滑动冲突
- Android解决ViewPager嵌套Fragment,Fragment嵌套ViewPager滑动冲突
- MPAndroidChart在ViewPager+Fragment滑动冲突解决
- 巧解ViewPager滑动冲突
- 解决ViewPager滑动冲突解决方案之自定义ViewPager
- 解决Gallery与viewpager滑动冲突问题
- ListView与ViewPager的滑动冲突
- SlidingPanelLayout与ViewPager滑动冲突的解决方法
- 解决ResizeMenu与viewpager滑动冲突
- Android ScrollView与ViewPager滑动上下左右冲突
- SwipeRefreshLayout与ViewPager滑动事件冲突解决
- ViewPager与百度地图的滑动冲突
- Silding左右滑动与ViewPager冲突
- SwipeRefreshLayout与ViewPager滑动事件冲突解决
- POJ2960 S-Nim(博弈论:sg函数)
- 前端笔试(三)
- 第四周项目3-单链表应用(2)
- HDU1576 A/B 求乘法逆元模版
- (九)ArcGIS API For Javascript调用结果地图服务
- ViewPager冲突之(ViewPager与ViewPager+Fragment滑动栏冲突)
- 开始写博客激励自己游戏引擎程序员之路
- leetcode 212. Word Search II
- 一个C程序是如何生成的
- es6的新特性(一)
- 关于Virtualbox下安装Linux系统
- python学习之 12306的一个小爬虫
- 深入理解javascript(4):__proto__
- STL容器之Vector