2

I am developing an android in which when I pressed device back button I go to previous fragment. What I want to achieve is that when I pressed device back button I don't want to go to previous fragment. How can I achieve that?.

wohlstad
  • 12,661
  • 10
  • 26
  • 39
Niraj Kumar
  • 49
  • 1
  • 8

3 Answers3

0

You must be doing calling addtobackstack("name") while adding or replacing the fragment.Remove this function before calling next fragment you wont go back to previous fragment for further desc

Community
  • 1
  • 1
Hussnain Azam
  • 358
  • 1
  • 5
  • 14
0

Do not add that fragment to backstack of the new fragment you're calling. Look at the below example I've used to explain you how this works.

To make that fragment come again, just add that fragment to backstack which you want to come on back pressed, Eg:

 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();
            }
        }
    });

In the above case, I m opening a LoginFragment when signIn button is pressed, right now am in SignupFragment. So if I call addToBackStack(TAG), TAG = "SignupFragment", then when back button is pressed in LoginFragment, we come to SignUpFragment. Happy Coding!

Saurabh Singh
  • 1,241
  • 13
  • 11
0

You can use this:

val navHostFragment = supportFragmentManager
    .findFragmentById(R.id.fragmentContainerViewMain) as NavHostFragment
val controller = navHostFragment.navController
val navOptions = NavOptions.Builder()
        .setPopUpTo(controller.graph.startDestinationId, true)
        .build()

controller.navigate(R.id.favoritesFragment, null, navOptions = navOptions)
Babak Karchini
  • 155
  • 1
  • 8