Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/234.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何在按下设备返回按钮时避免碎片返回到上一个碎片?_Android_Android Fragments_Fragment Backstack - Fatal编程技术网

Android 如何在按下设备返回按钮时避免碎片返回到上一个碎片?

Android 如何在按下设备返回按钮时避免碎片返回到上一个碎片?,android,android-fragments,fragment-backstack,Android,Android Fragments,Fragment Backstack,我正在开发一个android,当我按下设备后退按钮时,我会转到上一个片段。我想实现的是,当我按下设备后退按钮时,我不想转到上一个片段。我如何实现呢。你必须调用addtobackstack(“名称”)添加或替换片段时。在调用下一个片段之前删除此函数。您不会返回到上一个片段请勿将该片段添加到正在调用的新片段的backbackback中。看看下面的例子,我已经用它来解释这是如何工作的 要使碎片再次出现,只需将碎片添加到Backback中,您希望将其再次按下, 例如: 在上面的例子中,当按下signIn

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

你必须调用addtobackstack(“名称”)添加或替换片段时。在调用下一个片段之前删除此函数。您不会返回到上一个片段

请勿将该片段添加到正在调用的新片段的backbackback中。看看下面的例子,我已经用它来解释这是如何工作的

要使碎片再次出现,只需将碎片添加到Backback中,您希望将其再次按下, 例如:

在上面的例子中,当按下signIn按钮时,我正在打开一个LoginFragment,现在我在SignupFragment中。所以,若我调用addToBackStack(TAG),TAG=“SignupFragment”,那个么当LoginFragment中按下back按钮时,我们就来到SignupFragment。
快乐编码

加载片段时不要使用
addToBackStack()
 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();
            }
        }
    });