viewpager中fragment数据更新不能及时显示问题
viewpager中fragment数据更新不能及时显示问题我使用了两成viewpager,页面如下图。第一层是4个fragment对应4个签,每个fragment又有一...
viewpager中fragment数据更新不能及时显示问题我使用了两成viewpager,页面如下图。第一层是4个fragment对应4个签,每个fragment又有一个viewpager对应3个fragment.如图,现在我在新增收入界面添加数据进数据库后,在收入信息界面读取数据库显示收入信息,不能及时更新,必须切换到便签之类的界面再返回才会显示,监视生命周期发现,每次收入信息destoryview后再oncreateview才会更新,但直接从新增收入滑动到收入信息,不会destoryview,怎么能实现其及时更新。看了很多博客,解决方案就是写fragmentadapter时重写instantiateitem,我重写了如图,但由于viewpager的预加载机制,就是当前视图为新增收入时,会预加载收入信息,切换到收入信息不会再调用instanteitem,所以怎么的都只是调用一次instanteitem(),怎么实现每次滑动都调用instanteitem(),或者有其它方式更新listview
展开
2个回答
展开全部
Mark一下吧,在手机上没心思回答。
————————————————————————
倦怠症发作,还是没有Coding的欲望,不过受楼下启发我突然想起一种会被人揍的省事方法,理论上可行,就是给内嵌的PagerView设置属性,setOffscreenPageLimit(0),也就是不预加载,这样每次切换页面都要onCreateView了(注意不是onActivityCreate,这里Activity依旧只Create一次)
其实这属于Fragment间的通信问题吧,正常实现方式挺多的,图省事的话就用EventBus,
笨一点的就弄个静态flag,数据变化时就把flag设为true,然后在有列表的Fragment的onResume周期判断,listView,adapter不为null(重要)且flag为true就notifydatasetchanged,然后再把flag改回false。这习惯不好,会被人鄙视不过能达到目的。
换平时要Fragment间及时交互,我通常会在Fragment的构造方法里传接口实例,通过父Activity分配处理,建议你也用这种方式,邪道方式尝试下可以,用多了养成坏习惯就害了自己了……
————————————————————————
倦怠症发作,还是没有Coding的欲望,不过受楼下启发我突然想起一种会被人揍的省事方法,理论上可行,就是给内嵌的PagerView设置属性,setOffscreenPageLimit(0),也就是不预加载,这样每次切换页面都要onCreateView了(注意不是onActivityCreate,这里Activity依旧只Create一次)
其实这属于Fragment间的通信问题吧,正常实现方式挺多的,图省事的话就用EventBus,
笨一点的就弄个静态flag,数据变化时就把flag设为true,然后在有列表的Fragment的onResume周期判断,listView,adapter不为null(重要)且flag为true就notifydatasetchanged,然后再把flag改回false。这习惯不好,会被人鄙视不过能达到目的。
换平时要Fragment间及时交互,我通常会在Fragment的构造方法里传接口实例,通过父Activity分配处理,建议你也用这种方式,邪道方式尝试下可以,用多了养成坏习惯就害了自己了……
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询