关于在项目中多个类继承FragmentPagerAdapter时,改变getCount(),FC的问题解决
2015-08-21 10:11
1001 查看
在贸易通项目,报以下FC
08-21 09:56:21.515: E/AndroidRuntime(1629): java.lang.IllegalStateException: The application's PagerAdapter changed the adapter's contents without calling PagerAdapter#notifyDataSetChanged! Expected adapter item count: 2, found: 50000 Pager id: com.example.dianzikouanv1:id/pager_banner Pager class: class android.support.v4.view.ViewPager Problematic adapter: class com.example.dianzikouanv1.fragment.HomeFragment$BannerPagerAdapter
08-21 09:56:21.515: E/AndroidRuntime(1629): at android.support.v4.view.ViewPager.populate(ViewPager.java:966)
说是没有notifyDataSetChanged,但是对比原来项目该notifyDataSetChanged都写了。在报错fragment打log
发现每次getCount改变就挂
08-21 09:56:21.200: E/HomeFragment(1629): BannerPagerAdapter_getCount()_offLine
08-21 09:56:21.201: E/HomeFragment(1629): BannerPagerAdapter_getCount()_offLine
08-21 09:56:21.233: E/HomeFragment(1629): BannerPagerAdapter_getCount()_offLine
08-21 09:56:21.233: E/HomeFragment(1629): BannerPagerAdapter_getCount()_offLine
08-21 09:56:21.420: E/HomeFragment(1629): onPageScrolled--1_0.0_0
08-21 09:56:21.500: E/HomeFragment(1629): initBannerMessage()
08-21 09:56:21.505: E/HomeFragment(1629): BannerPagerAdapter_getCount()_onLine
08-21 09:56:21.515: E/AndroidRuntime(1629): FATAL EXCEPTION: main
上网找资料,发现一段:
“
这不是PagerAdapter中的Bug,通常情况下,调用notifyDataSetChanged方法会让ViewPager通 过Adapter的getItemPosition方法查询一遍所有child view,这种情况下,所有child view位置均为POSITION_NONE,表示所有的child view都不存在,ViewPager会调用destroyItem方法销毁,并且重新生成,加大系统开销,并在一些复杂情况下导致逻辑问题。特别是对于 只是希望更新child view内容的时候,造成了完全不必要的开销。”
考虑,是否多处引用了FragmentPagerAdapter,造成的冲突。
找到本项目中另外一个之前修改的继承FragemtnPagerAdapter的内部类,把它独立写一个class,
08-21 09:56:21.515: E/AndroidRuntime(1629): java.lang.IllegalStateException: The application's PagerAdapter changed the adapter's contents without calling PagerAdapter#notifyDataSetChanged! Expected adapter item count: 2, found: 50000 Pager id: com.example.dianzikouanv1:id/pager_banner Pager class: class android.support.v4.view.ViewPager Problematic adapter: class com.example.dianzikouanv1.fragment.HomeFragment$BannerPagerAdapter
08-21 09:56:21.515: E/AndroidRuntime(1629): at android.support.v4.view.ViewPager.populate(ViewPager.java:966)
说是没有notifyDataSetChanged,但是对比原来项目该notifyDataSetChanged都写了。在报错fragment打log
发现每次getCount改变就挂
08-21 09:56:21.200: E/HomeFragment(1629): BannerPagerAdapter_getCount()_offLine
08-21 09:56:21.201: E/HomeFragment(1629): BannerPagerAdapter_getCount()_offLine
08-21 09:56:21.233: E/HomeFragment(1629): BannerPagerAdapter_getCount()_offLine
08-21 09:56:21.233: E/HomeFragment(1629): BannerPagerAdapter_getCount()_offLine
08-21 09:56:21.420: E/HomeFragment(1629): onPageScrolled--1_0.0_0
08-21 09:56:21.500: E/HomeFragment(1629): initBannerMessage()
08-21 09:56:21.505: E/HomeFragment(1629): BannerPagerAdapter_getCount()_onLine
08-21 09:56:21.515: E/AndroidRuntime(1629): FATAL EXCEPTION: main
上网找资料,发现一段:
“
这不是PagerAdapter中的Bug,通常情况下,调用notifyDataSetChanged方法会让ViewPager通 过Adapter的getItemPosition方法查询一遍所有child view,这种情况下,所有child view位置均为POSITION_NONE,表示所有的child view都不存在,ViewPager会调用destroyItem方法销毁,并且重新生成,加大系统开销,并在一些复杂情况下导致逻辑问题。特别是对于 只是希望更新child view内容的时候,造成了完全不必要的开销。”
考虑,是否多处引用了FragmentPagerAdapter,造成的冲突。
找到本项目中另外一个之前修改的继承FragemtnPagerAdapter的内部类,把它独立写一个class,
相关文章推荐
- 为什么调用 FragmentPagerAdapter.notifyDataSetChanged() 并不能更新其 Fragment?
- Android - View - ViewPager
- Android FragmentPagerAdapter数据刷新notifyDataSetChanged没效果研究
- 水文系列之(一)FragmentPagerAdapter入门
- Android-- FragmentStatePagerAdapter分页(几种分页方法)
- ViewPager整合Fragment实现导航或滑动翻页
- FragmentPagerAdapter与FragmentStatePagerAdapter区别
- 关于app.FragmentManager和v4包的FragmentPagerAdapter冲突
- FragmentPagerAdapter无法刷新的最简单解决办法
- 为什么调用 FragmentPagerAdapter.notifyDataSetChanged() 并不能更新其 Fragment?
- 为什么调用 FragmentPagerAdapter.notifyDataSetChanged() 并不能更新其 Fragment?
- FragmentPagerAdapter的getItem()方法无法获取Fragment的解决方法
- FragmentPagerAdapter与FragmentStatePagerAdapter区别【重要】
- FragmentPagerAdapter与FragmentStatePagerAdapter区别
- FragmentPagerAdapter与FragmentStatePagerAdapter区别
- ViewPager和FragmentTabHost的使用
- 解决fragment+viewpager第二次进入的时候没有数据的问题
- 解决 FragmentPagerAdapter.notifyDataSetChanged() ...
- 关于Android导航页开发的体会
- FragmentPagerAdaptrer使用中注意点