Download模块 (七)

Download模块 (七)

FullscreenFragment类<V+C>,基础类, 如同其名,是一个会占据APP整个UI的fragment,注意这里的Fullscreen和系统没有任何关系,
并不是用了什么trick来隐藏系统的状态栏使得fragment占据整个屏幕,Fullscreen的意义只是对app本身来说的。
在设计APP的整体layout时,用FrameLayout将所有的View层叠在一起,有一个靠后的可见的View就是用来显示FullscreenFragment
的view,只有在需要显示FullscreenFragment的时候,才会将该view前面的mainView设为不可见以显示此View,并且还要在没有FullscreenFragment再显示的时候将此mainView设为可见。

<1>要检测fragment的展现,可以通过overide其开放的onCreateAnimation回调函数,这是在fragment构造进入/出去 view时展现的动画 时被
调用的,需要做的是,调用其super的onCreateAnimation函数来得到要展示的Animation,可能没有,不过可能还有nextAnimtion,
如果是 进入View 并且使用Animation, 那么为这个Animation set 一个 AnimationListener,在Animation结束的时候才触发event将前面的View设为不可见。 否则,直接现在就出发event,记住override此函数,最后还是需要返回一个Animation的。注意此event会携带当前的fragment是进还是出的信息。


<2>主Activity会监听上面的事件,不是简单的根据event的信息来将前置View可见/不可见,而要考虑这样的情况,

这个fullscreen的view里可能会有不止一个的FullscreenFragment, 只要有一个FullscreenFragment还在这个view里,那么前置View就应该不可见,只有所有的FullscreenFragment都移出来了,才将前置View会都可见,所以要维护一个计数 Z,当FullscreenView已经可见了,那么
就不需要设置可见了,Z+1, 当有FullscreenFragment移出来时,Z-1, 如果本次是进入而之前的Z==0,那么需要设置前置View不可见,
如果本次是出来,而Z-1以后是0,那么需要设置前置View可见,其他情况,只是Z +/-1.


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值