关于Fragment复用被EventBus多次调用

关于Fragment复用被EventBus多次调用

Android小彩虹2021-08-15 4:35:51340A+A-

今儿做项目遇到一个问题,就是在一个页面有TabLayoutViewPager,对应三个可复用的fragment,用使用EventBus的时候,只想特定的某一个页面响应event,但是由于是复用的,所以每一个fragment都是同一个事件响应,比如:

    @Subscribe(threadMode = ThreadMode.MAIN)
    public void onEvent(Event event) {
       ......
    }

我搜了下网上的做法,好像都是类似在event里面判断,但是在里面不管做什么判断,post一个event都会走同样的操作,也就是会调用三次,因为是注解的方式,不能像Rxbus那样可以根据type不同来注册不同的event,所以只能出此下策:

  • 声明三个不同的fragment来继承之前的复用fragment
  • 在每个子fragment只做三件事情,初始化,声明时间响应,注册和反注册,而复用fragment则要把仨处逻辑删除,当然有些属性和方法要从private要改成public或者protected

暂时能解决,但是不知道这样做是否合理,有没有大神老哥有更好或者更合理的解决方法和建议,不吝赐教

点击这里复制本文地址 以上内容由权冠洲的博客整理呈现,请务必在转载分享时注明本文地址!如对内容有疑问,请联系我们,谢谢!

支持Ctrl+Enter提交

联系我们| 本站介绍| 留言建议 | 交换友链 | 域名展示
本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除

权冠洲的博客 © All Rights Reserved.  Copyright quanguanzhou.top All Rights Reserved
苏公网安备 32030302000848号   苏ICP备20033101号-1
本网站由 提供CDN/云存储服务

联系我们