YoKeyword/SwipeBackFragment

通过viewpager加载起来的fragment,然后start启动其他fragment,侧滑返回划过看见下面的页面是空白的

Closed this issue · 11 comments

层级对不对呢

ViewPager里的子FG要避免直接start的 需要getParent.start 避免层级失控

viewpager里面的fragment无法直接启动下一层级的fragment,直接启动会白屏,我是用rxbus通过viewpager所属的fragment启动的

你在用Fragmentation库吗? 要不你看下其中的第二个demo,有类似场景:
screenshot_20161108-134945

在用的 好的 我看下 麻烦您了

同样遇到这一问题。滑动返回时底部的Fragment是灰色的,滑动返回完成后才显示。
添加Fragment的时候是先hide()后add()。不hide()就没问题(但不hide()会导致Fragment无法接收到onHiddenChanged()回调,项目依赖它)。求解。

@xyxzfj
你可以在SwipeBackLayout的327行处打断点,观察mPreFragment~

@YoKeyword 感谢回复!下图是我打日志的结果:
screen shot 2016-12-26 at 15 43 54
第二、三次开始滑时,preView已经是VISIBLE了的,但滑动过程中,背景仍然是灰色的,滑动返回之后才显示上一个Fragment。

@xyxzfj 我当时的问题是因为层级的关系 你可以看下堆栈信息 是不是层级不对

@YoKeyword @qinyang1018 看了下Layout树。是前一个SwipeBackLayout被hidden了。也就是说,虽然preView(其View对应SwipeRefreshWebViewLayout之上的那个FrameLayout)是VISIBLE的,但包裹它的SwipeBackLayout是GONE的了。

====Update====
谢谢各位亲的帮助。我通过按 @YoKeyword 的指引,断点 fragmentList ,找到了原因。我的每个页面Fragment都有一个或多个内嵌的子Fragment,于是fragmentList中的上一个,并不是上一页的Fragment,而是上一页的子Fragment。这点可能是 @YoKeyword 设计时没有考虑到的吧。我可以暂时在SwipeBackLayout.java 中通过逻辑判断简单解决。但一定有更好的办法。

screen shot 2016-12-26 at 15 56 39

@xyxzfj 抱歉 过年这段时间一直没上网, 看你对这个位置有些研究方便留个联系加下QQ吗? 我的QQ:8400074

我现在还有个问题需要处理 就是从activity启动另一个activity,然后从新启动的activity中loadRootFragment一个fragment这时候滑动返回这个fragment时候背景是全黑色的,因为当前fragment所在的activity是没有布局只loadfragment用的所以是黑色的。

这种情况确实是我设计的问题 但是现在不得不activity和fragment混合使用。

我现在是在stytle中通过true去让activity透明来解决的,但是使用这个办法混引起跳转抖动,activity透明导致的跳转看见桌面和点击穿透等问题。
不知道 你有什么更好的办法没?

我现在能找到目前还没有发现问题的解决办法就是单独给需要的activity设置透明