2

我正在开发一个 android,当我按下设备后退按钮时,我会转到上一个片段。我想要实现的是,当我按下设备后退按钮时,我不想转到上一个片段。我怎样才能实现。

4

2 回答 2

0

您必须在添加或替换片段时调用 addtobackstack("name")。在调用下一个片段之前删除此函数,您将不会返回到前一个片段进行进一步描述

于 2016-02-24T12:25:31.737 回答
0

不要将该片段添加到您正在调用的新片段的后台堆栈中。请看下面的示例,我用来向您解释这是如何工作的。

要使该片段再次出现,只需将该片段添加到您想要返回的 backstack 中,例如:

 btnSignIn.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            Fragment fragment = new LoginFragment();
            //replacing the fragment
            if (fragment != null) {
                FragmentTransaction ft = ((FragmentActivity)getContext()).getSupportFragmentManager().beginTransaction();
                ft.replace(R.id.content_frame, fragment);
                ft.addToBackStack("SignupFragment");
                ft.commit();
            }
        }
    });

在上述情况下,我在按下登录按钮时打开了一个 LoginFragment,现在我在 SignupFragment 中。因此,如果我调用 addToBackStack(TAG), TAG = "SignupFragment",那么当在 LoginFragment 中按下后退按钮时,我们就会来到 SignUpFragment。快乐编码!

于 2018-01-25T12:04:00.680 回答