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得认识加深了,觉得应该上升到自定义就好

保持学习,总是好的。



1 0
原创粉丝点击