【问题标题】:how to call super method in listener on kotlin如何在kotlin的监听器中调用超级方法
【发布时间】:2022-01-17 13:29:42
【问题描述】:
    override fun close(){
        var that = this
        view!!.animate().alpha(0f).setListener(object : Animator.AnimatorListener {
            override fun onAnimationStart(animation: Animator?) {}
            override fun onAnimationCancel(animation: Animator?) {}
            override fun onAnimationRepeat(animation: Animator?) {}
            override fun onAnimationEnd(animation: Animator?) {
                that.super.close()
            }
        }).setDuration(500).start()
    }

如何在监听器中调用 super.close()?

that.super.close()

我不能调用that.super.close()

我能解决吗?

我试着喜欢这个

    override fun close(){
        var that = this
        view!!.animate().alpha(0f).setListener(object : Animator.AnimatorListener {
            override fun onAnimationStart(animation: Animator?) {}
            override fun onAnimationCancel(animation: Animator?) {}
            override fun onAnimationRepeat(animation: Animator?) {}
            override fun onAnimationEnd(animation: Animator?) {
                that.closeSuper()
            }
        }).setDuration(500).start()
    }

    fun closeSuper(){
        super.close()
    }

这是工作。但我想在监听器或 close() 方法中调用 super.close() 请帮帮我!

【问题讨论】:

    标签: android kotlin lambda listener super


    【解决方案1】:

    试试这个:super@ClassName.close()

    当我尝试在 SampleDialog 类的侦听器中调用 super.show() 时,它适用于我,就我而言,它将是 super@SampleDialog.show()

    这里有一些references

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-11-28
      • 1970-01-01
      • 1970-01-01
      • 2019-06-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多