android - 禁用 AndroidX fragment 中的后退按钮

标签 android android-jetpack-navigation

我正在使用单 Activity 模式(每个 UI 的 fragment )与 Android 的 Jetpack 导航一起进行应用程序开发。每个 fragment 代表一个 UI。有什么简单的方法可以禁用后按 Action (软/硬件按钮)?

谢谢。

最佳答案

尝试类似的东西

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);
     }
 }

您可以在文档中阅读更多信息 herehere - 我从那里拿了例子

希望对您有所帮助。

关于android - 禁用 AndroidX fragment 中的后退按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58252277/

相关文章:

android - 在自定义 View 中绘制时支持 RTL 语言环境

android - @anim/fragment_fade_enter 包含在哪里?

android - Jetpack Navigation Deep Link 与错误的 ActionBar 按钮

java - Android 套接字连接错误 IP 导致卡住

android - lambda kotlin 解决方法中的智能转换变量

android - 如何在Android Fragment中使用导航组件

android - 在android中设置NavigationDrawer项目的OnClick

android-preferences - AndroidX 首选项和导航

java - UDP - 无法从 DatagramPacket 获取数据

java - Apache HttpClient HttpRequestRetryHandler 从未被调用