让Fragmentation 继续走下去

Author: JantHsuehCreated Jan 17, 2020Updated Mar 5, 2025

我使用这个库,也有一年多了,当时还没有适配Androidx,我拉下代码后,进行了整改,也算是折腾了一番,后来作者也更新了Androidx。在使用中,发现一些很难处理的问题,在遇到这些问题后,我首先会去issue看看,很多人和我有同样的问题,但都没解决。在空闲的时候,看完了这个库,又把Fragment 源码基本打通了,才解决了之前很棘手的问题。

之前想着有作者这样的大神,我遇到的这些问题,对他来说肯定是小事,应该迟早会修复。所以也没想pull request。

直到一天,同事跟我说,作者不维护这个库了,我拉下代码,去看了看那些问题,并没有解决。想着还有不少人,被这些问题困扰着,所以我打算继续维护这个库,既然打算维护,后期如果有问题,我会尽快处理。

demo中的示例,和我项目的实际情况不太一样,如果不太懂原理,可能会出现一些错误。所以demo_wechat 我也更新了一些

为了表示对原作者的尊重,能保留原作者名称的我都保留了。我对引用方式进行了修改,因为可能这个域名,作者不再付费,或者有其他用途。避免使用上的冲突,我改为了自己的域名。(特意买了xuexuan.me 这个域名,后缀me 再次致敬作者)

implementation 'me.yokeyword:fragmentationx:1.0.2' 更改为 implementation 'me.xuexuan:fragmentationx:1.0.4'

implementation 'me.yokeyword:fragmentationx-core:1.0.2' 更改为 implementation 'me.xuexuan:fragmentationx-core:1.0.4'

implementation 'me.yokeyword:fragmentationx-swipeback:1.0.2' 更改为 implementation 'me.xuexuan:fragmentationx-swipeback:1.0.4'

这个库implementation 'me.yokeyword:eventbus-activity-scope:1.1.0' 在issue中没看到有相关的bug,所以我目前没有修改它,还是使用原作者的。现在使用eventbus 的人应该不多了吧

在下一个版本,我会先把这几个问题给解决了: #1139 #1183 #1194 #1185 #1159

这些问题的原理分析,我写了几篇文章: 1、Android 在动画结束回调onAnimationEnd()中remove view的崩溃解决方法及源码分析 2、Fragment.setNextAnim(int) on a null object 解决方法及源码详解 3、Fragment has not been attached yet 解决方法及源码详解

其中关于swipeback问题的原因,看一下代码的修改,相信小伙伴们会明白的

使用不规范造成的 #1177 (具体原因,可参考上面2、3 文章),可参考更新后的demo_wechat

很多问题描述,和这几个问题很像,我不确定是否是其他问题,还是没有描述清楚,所以没有提及。

山外有山,人外有人。比我水平高的人,肯定很多,所以我希望大家能一起参与进来,把这个库维护的更好,造福更多的Android同胞。

最后奉上代码:https://github.com/JantHsueh/Fragmentation 为了方便维护, 后续有新版本,就不再在这里说明了,建议大家start一下我fork的版本。欢迎 issues