Android 如何在Kotlin中创建共享元素转换侦听器?

Android 如何在Kotlin中创建共享元素转换侦听器?,android,kotlin,android-animation,Android,Kotlin,Android Animation,我正在活动之间使用共享元素转换,我想延迟一些UI更新,直到从ActivityA到ActivityB的共享元素转换完成 我正在用Kotlin编写应用程序,似乎无法使用任何从java转换的解决方案。我试过了 val sharedElementEnterTransition = window.sharedElementEnterTransition sharedElementEnterTransition.addListener(object : Transition.TransitionListen

我正在活动之间使用共享元素转换,我想延迟一些UI更新,直到从ActivityA到ActivityB的共享元素转换完成

我正在用Kotlin编写应用程序,似乎无法使用任何从java转换的解决方案。我试过了

val sharedElementEnterTransition = window.sharedElementEnterTransition
sharedElementEnterTransition.addListener(object : Transition.TransitionListener() {
    override fun onTransitionResume(transition: Transition) {
        super.onTransitionResume(transition)
    }
    override fun onTransitionPause(transition: Transition) {
        super.onTransitionPause(transition)
    }
    override fun onTransitionCancel(transition: Transition) {
        super.onTransitionCancel(transition)
    }
    override fun onTransitionStart(transition: Transition) {
        super.onTransitionStart(transition)
    }
    override fun onTransitionEnd(transition: Transition) {
        super.onTransitionEnd(transition)
    }
    override fun equals(other: Any?): Boolean {
        return super.equals(other)
    }
    override fun hashCode(): Int {
        return super.hashCode()
    }
    override fun toString(): String {
        return super.toString()
    }
})
在ActivityB中的
onCreate
,但获取类型不匹配:

Error:(80, 51) Type mismatch: inferred type is <no name provided> but Transition.TransitionListener! was expected
我无法解决这个问题


谢谢您的帮助。

您看到的类型不匹配是在
android.transition.transition.TransitionListener
android.transition.support.transition.TransitionListener
类之间。(或者至少,这是我能够重现这一问题的方式)

window.sharedElementEnterTransition
返回第一个
Transition
类型的对象,您正在尝试传递第二个类型的实例。因为TransitionListener是一个接口,一个不扩展另一个,所以它们是不可互换的。只需更改导入以删除
支持
包,这应该可以编译并工作


请注意,由于不再支持此功能,因此它不向后兼容。我对转换不够熟悉,无法告诉您如何将
窗口
访问器转换为兼容版本。

您可以添加错误输出吗?我在您的代码中没有看到任何类型不匹配的情况。我现在添加了更多信息。
Error:(98, 24) Abstract member cannot be accessed directly