OR博客
【安卓共享元素动画】Gallery
苗锦洲
创建于:2020-08-05 14:21:58
0
34
286
0
activity A中的banner到activity B中的viewpager,当B滑动后再返回A,A应该在动画结束前移动到B中的位置

activity A 中的 banner 到 activity B 中的 viewpager,当 B 滑动后再返回 A,A 应该在动画结束前移动到 B 中的位置

问题

activity A 中的 banner 到 activity B 中的 viewpager,当 B 滑动后再返回 A,A 中的 banner 还是原先进入 B 的时候的位置,导致图片闪动,体验很不好。

我的解决方法

在 B 的 preFinish 方法中发送一个 Event,A 接受 Event 后让 banner 移动到 B 中的 position

Activity A:
注意这里要延迟一段时间后再 setCurrentItem,否则会影响原先的共享元素的动画,我选择的是 100ms,效果很好。

@Subscribe(threadMode = ThreadMode.MAIN) fun onGalleryActivityExit(galleryActivityExit: GalleryActivityExit) { currentItem = galleryActivityExit.currentItem Http.handler.postDelayed({ banner.setCurrentItem(currentItem + 1, false) banner.indicator.indicatorConfig.currentPosition = currentItem }, 100) }

Activity B:

override fun preFinish(): Boolean { EventBus.getDefault().post(GalleryActivityExit(currentItem)) return true }
评论
楼主暂时不想被别人评论哦~