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")
我也在看这个Why are their 2 different ComponentActivity classes? 我已设置此库,并希望使用 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 {
//...
}
答案 0 :(得分:11)
您正在将稳定版本(取决于它的appcompat:1.0.2
和fragment:1.0.0
)与alpha版本混合在一起。 1.1.0
的仅片段FragmentActivity
alpha版本取决于androidx.activity
的{{1}},因此包含ComponentActivity
方法。
您需要专门包含addOnBackPressedCallback
或将您的AppCompat依赖项切换为androidx.fragment:fragment:1.1.0-alpha05
(可传递依赖于片段androidx.appcompat:appcompat:1.1.0-alpha03
)。
答案 1 :(得分:1)
据了解,这就是我所需要的,而不是将其他依赖项作为最高答案androidx.appcompat:appcompat:1.1.0-beta01