禁用 AndroidX 片段中的后退按钮
Disabling back button in AndroidX Fragment
我正在使用单一 Activity 模式(每个 UI 的片段)与 Android 的 Jetpack 导航一起用于应用程序开发。每个片段代表一个UI。有什么简单的方法可以禁用后按操作(soft/hardware 按钮)?
谢谢。
试试
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);
}
}
您可以在文档中阅读更多内容 here and here - 我从那里获取示例
希望对您有所帮助。
我正在使用单一 Activity 模式(每个 UI 的片段)与 Android 的 Jetpack 导航一起用于应用程序开发。每个片段代表一个UI。有什么简单的方法可以禁用后按操作(soft/hardware 按钮)?
谢谢。
试试
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);
}
}
您可以在文档中阅读更多内容 here and here - 我从那里获取示例
希望对您有所帮助。