如何避免Fragment在按下设备后退按钮时回到之前的Fragment?

时间:2016-02-24 12:18:24

标签: android android-fragments fragment-backstack

我正在开发一个Android,当我按下设备后退按钮时,我转到上一个片段。我想要实现的是,当我按下设备后退按钮时,我不想去上一个片段。如何我实现了。

2 个答案:

答案 0 :(得分:0)

您必须在添加或替换片段时调用addtobackstack(" name")。在调用下一个片段之前移动此函数,您将不会返回上一个片段for further desc

答案 1 :(得分:0)

不要将该片段添加到您正在调用的新片段的backstack中。请看下面的示例,我曾经用它来解释这是如何工作的。

要使该片段再次出现,只需将该片段添加到您想要按下的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();
            }
        }
    });

在上面的例子中,我按下signIn按钮时打开一个LoginFragment,现在是在SignupFragment中。因此,如果我调用addToBackStack(TAG),TAG =" SignupFragment",那么当在LoginFragment中按下后退按钮时,我们来到SignUpFragment。 快乐的编码!