我在两个活动之间使用共享元素转换。第二个活动由包含片段的视图寻呼机组成。我希望在共享元素转换结束时进行进一步的更改。这是回调:
setEnterSharedElementCallback(
object : SharedElementCallback() {
override fun onMapSharedElements(
names: MutableList<String>,
sharedElements: MutableMap<String, View>
) {
val keySharedElementView = sharedElements[videoPath[currentPosition]]
if (keySharedElementView != null) {
Log.i("KSEV", "Not Null")
ViewCompat.animate(keySharedElementView)
.setListener(object : ViewPropertyAnimatorListenerAdapter() {
override fun onAnimationEnd(view: View?) {
super.onAnimationEnd(view)
Log.i("KSEV","Ended")
runOnUiThread { k
videoThumb.visibility = GONE
if (videoThumb.visibility == GONE) {
Log.i("SEV", "GONE")
}
}
}
}).start()
}
}
})
打印最后一条日志语句GONE。但画面仍然清晰可见。如何更改其可见性?
您的代码看起来不错,只是您还没有开始动画,因此没有onAnimationEnd((回调。
修改您的代码如下:
ViewCompat.animate(keySharedElementView)
.setListener(object : ViewPropertyAnimatorListenerAdapter() {
override fun onAnimationEnd(view: View?) {
super.onAnimationEnd(view)
Log.i("KSEV","Ended")
}
}).setDuration(250).start()