Skip to content

让Fragmentation 继续走下去 #1237

Open

Description

@JantHsueh

我使用这个库,也有一年多了,当时还没有适配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

Activity

  1. changed the title [-]让Fragmentation 一直走下去[/-] [+]让Fragmentation 继续走下去[/+] on Jan 17, 2020
  2. star-andy commented on Feb 4, 2020

    @star-andy

    支持下

  3. ray-yuruisoft commented on Feb 9, 2020

    @ray-yuruisoft

    implementation 'me.xuexuan:fragmentationx:1.0.3'
    你的库怎么 引不进来,缺少依赖

  4. erosiners commented on Feb 9, 2020

    @erosiners

    老哥,你的库依赖有问题
    ERROR: Failed to resolve: Fragmentation:fragmentation_core:unspecified

  5. star-andy commented on Feb 9, 2020

    @star-andy

    @ray-yuruisoft @erosiners 是有问题 我是直接引用了implementation 'me.xuexuan:fragmentationx-core:1.0.3' 然后自己添加了 SupportActivity/Fragment

  6. JantHsueh commented on Feb 11, 2020

    @JantHsueh
    Author

    @ray-yuruisoft @erosiners @qinyang1018 已经解决这个问题,版本改为1.0.4,例如: implementation 'me.xuexuan:fragmentationx:1.0.4'

  7. erosiners commented on Feb 13, 2020

    @erosiners

    @JantHsueh 谢谢,已经可以了

  8. NewBrandSTONE commented on Feb 19, 2020

    @NewBrandSTONE

    大佬您好,我想咨询一下,之前在 issue 里看到很多反馈白屏的问题,您这有什么解决或者排查方法吗,十分感谢~

  9. JantHsueh commented on Feb 19, 2020

    @JantHsueh
    Author

    @NewBrandSTONE 你好

    关于白屏的问题,我认为是使用的问题吧,如果最上级FragmentManager (通过Activity获得的,不是在fragment通过getChildFragmentManager 获得的)管理的fragment只剩一个了,再调用有pop的操作,就会出现白屏。

    项目中open的issue中,目前有6个是关于白屏的

    #1190 ,#1050, #1011 , #1151 和 #1150( 这两个是同一人提出的,应该算一种情况)

    上面的这四种情况,和使用的版本、代码逻辑有关,所以我不好重现。我认为应该都是使用上的问题。

    #1083 这个好像特殊一点,但是我按照评论里的步骤,也是没有重现

    我在长期使用中,并未出现白屏的问题。也可能确实有问题,但我现在没有发现,如果有同学遇到了,可详细描述一下复现步骤或提供简单的demo,我会尽快处理。

    最后想多唠叨一下:
    关于白屏的描述,有的同学看到屏幕有大块白,就说是白屏,其实是有底部的导航bottom(我公司的测试和产品,就是这样描述),这种情况,其实就是 #1139 的问题。

  10. OneTake1998 commented on Feb 25, 2020

    @OneTake1998

    使用androidx包出这个问题,v7包没问题

    java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.mall/com.example.mall.MainActivity}: java.lang.ClassCastException: com.example.mall.MainActivity cannot be cast to me.yokeyword.fragmentation.SupportActivity

  11. JantHsueh commented on Feb 26, 2020

    @JantHsueh
    Author
  12. xiaosalanqiao commented on Feb 28, 2020

    @xiaosalanqiao

    支持一下

  13. hothotsavage commented on Mar 4, 2020

    @hothotsavage

    顶起来

  14. LGYG commented on May 7, 2020

    @LGYG

    支持大佬!

  15. koala0x commented on May 8, 2020

    @koala0x

    star

  16. JantHsueh commented on Jun 5, 2020

    @JantHsueh
    Author

    1.0.6 已发布
    1、去除了对mStopped 和 mStateSaved的依赖、删除FragmentationMagician (更加贴近Android 源码的思想)

    2、优化 VisibleDelegate TransactionDelegate

    解决 #1234 #1222

  17. 0x000-0 commented on Nov 11, 2020

    @0x000-0

    废弃可能是作者太忙了吧,支持你继续维护!

  18. wickqin commented on Dec 19, 2020

    @wickqin

    支持

  19. djf123 commented on Feb 19, 2021

    @djf123

    顶一下,不然不维护太可惜了

  20. ssyRo156 commented on Jul 26, 2021

    @ssyRo156

    大佬您好,我想咨询一下,之前在 issue 里看到很多反馈白屏的问题,您这有什么解决或者排查方法吗,十分感谢~

    #1130 (comment) 解决了小问题, 这里看看

  21. HolmesJJ commented on Dec 20, 2021

    @HolmesJJ

    mark一下,感谢大佬继续维护

  22. aa86799 commented on Apr 27, 2022

    @aa86799

    用了四五年了,在想,是不是俺也来接个力

  23. esirong commented on Apr 27, 2022

    @esirong
  24. 957699zjs commented on Aug 26, 2024

    @957699zjs

    你好,现在是不维护了吗,为什么我安装不下来
    implementation("me.xuexuan:fragmentationx:1.0.6")
    implementation("me.xuexuan:fragmentationx-swipeback:1.0.6")

  25. woshigw commented on Mar 5, 2025

    @woshigw

    依赖下载不下来

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions