OnBackInvokedCallback 如何使用安卓
时间: 2023-06-01 22:04:10 浏览: 46
OnBackPressedCallback 是一个用于处理后退按钮点击事件的回调函数。以下是使用 OnBackPressedCallback 的步骤:
1. 在 Activity 或 Fragment 中创建 OnBackPressedCallback 对象:
```kotlin
val callback = object : OnBackPressedCallback(true) {
override fun handleOnBackPressed() {
// 处理后退按钮点击事件
}
}
```
2. 将 OnBackPressedCallback 对象添加到 Activity 或 Fragment 的 OnBackPressedDispatcher 中:
```kotlin
requireActivity().onBackPressedDispatcher.addCallback(viewLifecycleOwner, callback)
```
3. 在 handleOnBackPressed() 方法中实现后退按钮点击事件的处理逻辑。
注意:创建 OnBackPressedCallback 对象时,需要传入一个布尔值参数,用于指定是否允许后退操作。如果设置为 false,则后退按钮将不起作用。如果设置为 true,则后退按钮将正常工作。
同时,在添加 OnBackPressedCallback 对象时,需要传入一个 LifecycleOwner 对象。如果是在 Activity 中使用,则可以使用 requireActivity() 方法获取 Activity 对象;如果是在 Fragment 中使用,则可以使用 viewLifecycleOwner 属性获取 Fragment 对象。
示例代码如下:
```kotlin
class MyFragment : Fragment() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
val callback = object : OnBackPressedCallback(true) {
override fun handleOnBackPressed() {
// 处理后退按钮点击事件
}
}
requireActivity().onBackPressedDispatcher.addCallback(viewLifecycleOwner, callback)
}
}
```