解决fragment+viewpager第二次进入的时候没有数据的问题
2014-07-31 17:08
441 查看
问题描述:
我的项目类似新浪新闻,侧边栏有几个item,每个item对应一个fragment。其中有一个item A对应的JobFragment 中有viewpager,然后viewpager中又有4个fragment。
选中JobFragment时,首先初始化界面,这时候没有数据,然后界面初始化完后,经过访问网络获取数据,然后填充数据到viewpager中的4个fragment中。如图示:
222244c33nwe8npry888vn.png (172.36 KB, 下载次数: 40)
下载附件 保存到相册
2013-10-1 16:56 上传
遇到的问题:第一次选中JobFragment的时候,界面能够正常初始化,而且获取的网络数据也能正常显示到4个fragment中,问题是,如果切换到其他item对应的fragment时候再选中
item A对应的JobFragment,也就是第二次进入JobFragment,界面可以正常显示,但是数据就是不能显示出来,调试的时候发现数据都能正常显示,但是界面就是一片
空白,而且发现第二次进入的时候viewpager中的4个fragment的onCreateView方法都不执行。将viewpager多滑动几次才会执行onCreateView方法。数据也就能够正常显示。
问题分析:其实原因就在第二次进入JobFragment时viewpager中的4个fragment的onCreateView没有调用,再向上一层分析,发现onCreateView的调用,是由于被类JobPagerAdapter
中的getItem的调用。其实,为什么会出现第二次进入的时候viewpager中的4个fragment的onCreateView方法都不执行也就是getItem方法没有调用呢?原因就在于FragmentPagerAdapter
的设计原理,关于FragmentStatePagerAdapter和FragmentPagerAdapter的详细区别,请移步为什么调用 FragmentPagerAdapter.notifyDataSetChanged() 并不能更新其 Fragment?
问题解决:问题发现并分析透了就可以对问题进行处理。很简单就把FragmentPagerAdapter替换成FragmentStatePagerAdapter就可以了。
我的项目类似新浪新闻,侧边栏有几个item,每个item对应一个fragment。其中有一个item A对应的JobFragment 中有viewpager,然后viewpager中又有4个fragment。
选中JobFragment时,首先初始化界面,这时候没有数据,然后界面初始化完后,经过访问网络获取数据,然后填充数据到viewpager中的4个fragment中。如图示:
222244c33nwe8npry888vn.png (172.36 KB, 下载次数: 40)
下载附件 保存到相册
2013-10-1 16:56 上传
遇到的问题:第一次选中JobFragment的时候,界面能够正常初始化,而且获取的网络数据也能正常显示到4个fragment中,问题是,如果切换到其他item对应的fragment时候再选中
item A对应的JobFragment,也就是第二次进入JobFragment,界面可以正常显示,但是数据就是不能显示出来,调试的时候发现数据都能正常显示,但是界面就是一片
空白,而且发现第二次进入的时候viewpager中的4个fragment的onCreateView方法都不执行。将viewpager多滑动几次才会执行onCreateView方法。数据也就能够正常显示。
问题分析:其实原因就在第二次进入JobFragment时viewpager中的4个fragment的onCreateView没有调用,再向上一层分析,发现onCreateView的调用,是由于被类JobPagerAdapter
中的getItem的调用。其实,为什么会出现第二次进入的时候viewpager中的4个fragment的onCreateView方法都不执行也就是getItem方法没有调用呢?原因就在于FragmentPagerAdapter
的设计原理,关于FragmentStatePagerAdapter和FragmentPagerAdapter的详细区别,请移步为什么调用 FragmentPagerAdapter.notifyDataSetChanged() 并不能更新其 Fragment?
问题解决:问题发现并分析透了就可以对问题进行处理。很简单就把FragmentPagerAdapter替换成FragmentStatePagerAdapter就可以了。
相关文章推荐
- 解决fragment+viewpager第二次进入的时候没有数据的问题
- 解决fragment+viewpager第二次进入的时候没有数据的问题
- 解决fragment+viewpager第二次进入的时候没有数据的问题
- 解决fragment+viewpager第二次进入的时候没有数据的问题
- 解决fragment+viewpager第二次进入的时候没有数据的问题
- 解决fragment+viewpager第二次进入的时候没有数据的问题
- 解决fragment+viewpager第二次进入的时候没有数据的问题
- 解决fragment+viewpager第二次进入的时候没有数据的问题
- 解决fragment+viewpager第二次进入的时候没有数据的问题
- 关于第二次执行fragment+viewpager没有数据,页面空白的问题
- 解决Android开发中ViewPager动态设置PagerAdapter时第二次进入Fragment内容不显示的问题
- 解决Android开发中ViewPager动态设置PagerAdapter时第二次进入Fragment内容不显示的问题
- fragment嵌套viewpager嵌套fragment第二次加载数据不显示问题
- 切换fragment回来的时候如果有类似viewpager的控件,会自动的被隐藏了,自动滑动了最上方的问题解决
- Fragment+viewpager+Fragment 嵌套 第二次进入该fragment不显示数据
- fragment+viewpager 第二次执行时viewpager没有数据
- ViewPager刷新数据没有生效问题
- Fragment+viewpager+Fragment 嵌套 第二次进入该fragment不显示数据
- viewpager+fragment联网加载数据无显示以及预加载问题解决
- Activity中包含多个Fragment,Afragment中嵌套ViewPager,在第二次切换到Afragment时Viewpager内容被清空的问题解决