关于共享元素demo的实现数据及分析

为了弄懂共享元素间数据传递到底是怎么回事,我决定粗暴野蛮的进行测试,方法很简单:打log。两个activity的所有生命周期和重要方法都打了。以下是试验结果(注意试验2紧接着试验1,没有退出MainActivity):

demo的地址:https://github.com/zengqi-ustb/activity-transitions

试验1:

试验内容(点击0,滑动至7,点击back):

刚进入:
I/test: MainActivity  oncreate
I/test: MainActivity  onstart
I/test: MainActivity  onresume

点击0I/test: MainActivity   onclick
//bundle = ActivityOptions.makeSceneTransitionAnimation(MainActivity.this,
//mAlbumImage, mAlbumImage.getTransitionName()).toBundle();
//这句话引起了共享元素回调函数onMapSharedElements
I/test: MainActivity   bundle is null
I/test: MainActivity   start activity
I/test: MainActivity  onpause
I/test: DetailActivity  oncreate
I/test: DetailActivity  onstart
I/test: DetailActivity  onresume
I/test: MainActivity  onstop

滑动至7:
无

点击back:
I/test: DetailActivity  finishAfterTransition
//退出应该调用了回调函数
I/test: DetailActivity   sharedelement not null and positionChanged
I/test: MainActivity  onrestart
I/test: MainActivity  onactivityreenter
I/test: postponeEnterTransition
I/test: MainActivity  onstart
I/test: startPostponedEnterTransition
//从log中可以看出,在onstart后,开始draw之前,调用了startPostponedEnterTransition,导致了共享元素
//函数的回调
I/test: MainActivity   bundle not null and sharedelement not null and positionChanged
I/test: DetailActivity  onpause
I/test: MainActivity  onresume
I/test: DetailActivity  onstop
I/test: DetailActivity  ondestroy

试验2:

试验内容(点击1,滑动至6,不显示图像后点击back):

点击1I/test: MainActivity   onclick
I/test: MainActivity   bundle is null
I/test: MainActivity   start activity
I/test: MainActivity  onpause
I/test: DetailActivity  oncreate
I/test: DetailActivity  onstart
I/test: DetailActivity  onresume
I/test: MainActivity  onstop

滑动至6:
无

不显示图像后点击back:
I/test: DetailActivity  finishAfterTransition
I/test: DetailActivity   sharedelement null
I/test: MainActivity  onrestart
I/test: MainActivity  onactivityreenter
I/test: postponeEnterTransition
I/test: MainActivity  onstart
I/test: startPostponedEnterTransition
//跟上述一样
I/test: MainActivity   bundle not null and sharedelement not null and positionChanged
I/test: DetailActivity  onpause
I/test: MainActivity  onresume
I/test: DetailActivity  onstop
I/test: DetailActivity  ondestroy
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值