在碎片中返回导航

时间:2016-01-19 07:30:22

标签: android android-fragments navigation

我已经对此做了一些研究,并遇到了几个尝试为这个问题提供解决方案的实现。其中一个是https://github.com/rathodchintan/Fragment-Back-Stack,似乎适用于大多数人。

我也尝试了以下方法:

        getView().setFocusableInTouchMode(true);
        getView().requestFocus();
        getView().setOnKeyListener(new View.OnKeyListener() {
            @Override
            public boolean onKey(View v, int keyCode, KeyEvent event) {
                if (event.getAction() == KeyEvent.ACTION_UP && keyCode == KeyEvent.KEYCODE_BACK) {
                    getActivity().getSupportFragmentManager().popBackStack();
                    return true;
                }
                return false;
            }
        });
在onResume方法上

但是当我尝试使用它们时会出现一些问题。

在我的情况下,我有一个主片段,用户可以从中导航到其中的8个其他片段。还有一个导航抽屉,上面有4个项目。

如果用户导航到任何其他片段,并且在事务期间使用addToBackStack(null)方法,则某些页面会变慢。此外,当单击后退按钮时,用户必须在添加到后台堆叠的所有其他片段之间导航,即使它们出现不止一次。

我想要实现的是这样一种情况,即更改片段不会影响前景片段的性能以及导航回来时,只要主片段出现在前景中,单击后面应关闭应用程序而不是浏览后台堆中的每一个片段。

0 个答案:

没有答案