Android Navigation 自定义返回键

在使用Navigation库的时候, 系统已经为我们做好了返回键的处理, 默认情况下, 点击返回键会自动执行popBackStack()

但是如果在返回冲突的时候, 就会出问题, 比如首页是ViewPager, 子页面是Fragemnt, 然后从Fragmentnavigate到下一个页面的时候, 点击返回键, 系统执行的操作会是外层Activity的, 会直接推出App.

这种情况下, 需要重写返回键, 以便于手动退回到上一个Fragment

只需要在当前的Fragment里面的onCreate()方法里面加入如下方法就可以了

     // This callback will only be called when MyFragment is at least Started.
        OnBackPressedCallback callback = new OnBackPressedCallback(true /* enabled by default */) {
            @Override
            public void handleOnBackPressed() {
                // Handle the back button event
                NavHostFragment.findNavController(SysMessageFragment.this)
                        .popBackStack();
            }
        };
        requireActivity().getOnBackPressedDispatcher().addCallback(this, callback);

你可能感兴趣的:(Android Navigation 自定义返回键)