如何从 kotlin 中的内部 class 调用片段方法?

How to call a fragment method from an inner class in kotlin?

我在片段中创建了一个方法和一个内部 class。但是外部 class 方法在 Fragment 的内部 class 中无法访问?如何在片段的内部 class 中调用外部 class 方法或成员。下面是我的代码:

class BlankFragment : Fragment() {

override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
    super.onViewCreated(view, savedInstanceState)
    mOrientationListener = OrientationChangeListener(requireContext())

}

fun rotateUI(orientation: Int){
    /// something
}

/**
 * This callback returns rotation angle of the phone, to make it return orientation angles enable it on onStart and disable it onPause
 */
private var mOrientationListener: OrientationChangeListener? = null

internal class OrientationChangeListener (context: Context?) : OrientationEventListener(context) {
    /**      portrait
     * (0, 359)
     *
     * (270)            (90)
     * (land)           (land)
     */
    override fun onOrientationChanged(orientation: Int) {

            // this method is inaccessible
            //rotateUI(orientation)
    }
}}

对于 inner class 关键字应该是 inner 而不是 internal 然后你可以使用它来访问这样的方法:-

this@BlankFragment.rotateUI