Androidx Activity OnBackPressedCallback 接口问题

Androidx Activity OnBackPressedCallback Interface Issue

implementation("androidx.core:core-ktx:1.1.0-alpha04")
implementation ("androidx.appcompat:appcompat:1.0.2")
implementation ("androidx.activity:activity-ktx:1.0.0-alpha05")

我也在看这个 我有这个库设置并希望使用 OnBackPressedCallback

import android.os.Bundle
import androidx.activity.OnBackPressedCallback
import androidx.fragment.app.Fragment

open class BaseNiceFragment : Fragment(), OnBackPressedCallback {

    override fun handleOnBackPressed(): Boolean {
       // do some nice things here
       return true
    }

    override fun onActivityCreated(savedInstanceState: Bundle?) {
       super.onActivityCreated(savedInstanceState)
       activity!!.addOnBackPressedCallback(viewLifecycleOwner, this)
    }

    override fun onDestroyView() {
       super.onDestroyView()
       activity!!.removeOnBackPressedCallback(this)
    }

    protected open fun handleEmptyView(isListEmpty: Boolean) {} 
}

使用 Android Studio 进行调试构建时效果很好,但每当我尝试执行 app:compileFullReleaseKotlin 时,我都会 运行 处理以下问题

BaseNiceFragment.kt: (_, _): Unresolved reference: OnBackPressedCallback

任何人或 Ian 都知道如何确保它包含在我的所有构建中

public interface OnBackPressedCallback {
 //...
}

您将稳定版本(appcompat:1.0.2 和它所依赖的 fragment:1.0.0)与 alpha 版本混合使用。只有 FragmentActivity 的片段 1.1.0 alpha 版本依赖于 androidx.activityComponentActivity,因此包含 addOnBackPressedCallback 方法。

您需要特别包含 androidx.fragment:fragment:1.1.0-alpha05 或将您的 AppCompat 依赖项切换到 androidx.appcompat:appcompat:1.1.0-alpha03(它可传递地依赖于 Fragment 1.1.0-alpha05)。

截至 2019 年 8 月,这就是我所需要的,而不是加载其他依赖项作为最佳答案 androidx.appcompat:appcompat:1.1.0-rc01