码迷,mamicode.com
首页 > 其他好文 > 详细

关于在项目中多个类继承FragmentPagerAdapter时,改变getCount(),FC的问题解决

时间:2015-08-21 11:30:19      阅读:240      评论:0      收藏:0      [点我收藏+]

标签:fragmentpageradapter getcount() notifydatasetchanged

    在贸易通项目,报以下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,技术分享

关于在项目中多个类继承FragmentPagerAdapter时,改变getCount(),FC的问题解决

标签:fragmentpageradapter getcount() notifydatasetchanged

原文地址:http://1137907860.blog.51cto.com/10452906/1686738

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!