android - 在 AndroidX Fragment 中禁用后退按钮
问题描述
我将单活动模式(每个 UI 的片段)与 Android 的 Jetpack 导航一起用于应用程序开发。每个片段代表一个 UI。有什么简单的方法可以禁用后按操作(软/硬件按钮)?
谢谢。
解决方案
尝试类似的东西
class MyFragment : Fragment() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
// This callback will only be called when MyFragment is at least Started.
val callback = requireActivity().onBackPressedDispatcher.addCallback(this) {
// Handle the back button event
}
// The callback can be enabled or disabled here or in the lambda
}
...
}
或者更冗长并更好地控制您的代码:
public class FormEntryFragment extends Fragment {
@Override
public void onAttach(@NonNull Context context) {
super.onAttach(context);
OnBackPressedCallback callback = new OnBackPressedCallback(
true // default to enabled
) {
@Override
public void handleOnBackPressed() {
// Handle the back button event
// Leave empty do disable back press.
}
};
requireActivity().getOnBackPressedDispatcher().addCallback(
this, // LifecycleOwner
callback);
}
}
您可以在此处和此处的文档中阅读更多信息- 我从那里获取了示例
希望能帮助到你。
推荐阅读
- amazon-web-services - 使用 S3 存储桶通过单一云端分发服务多个网站
- google-bigquery - 读取 Avro 文件并将其写入 BigQuery 表
- c - 2n 比例整数的 16 位加法
- hive - Hive- 使用 ROW_NUMBER() 删除重复行
- java - Appium 不显示 webview 上下文,它只显示本机应用程序上下文。如何获取 webview 上下文?
- java - 最后的分析失败了。后台任务页面上提供了更多详细信息
- python - 如何获取弹性搜索索引中列(字段)中不同值的计数
- c++ - 嵌套可变参数模板
- .net - 如何在 Visual Studio 2017 专业版中启用 ASP.Net Core 2.2
- cordova - Ionicv3 使用 minSdk 最多为 16 的兼容库或将此项目的 minSdk 版本增加到至少 19,