0

I am using android navigation components library. I have two fragments set up with navigation graph. I want to do some additional actions on back button press inside of my fragment.

override fun onOptionsItemSelected(item: MenuItem): Boolean {
    return NavigationUI.onNavDestinationSelected(item, view!!.findNavController())
           || super.onOptionsItemSelected(item)
}

I use this code to handle toolbar up button click, but I also want to handle back button press. How can I do this?

Vladislav
  • 273
  • 3
  • 15

2 Answers2

0

It is another override onBackPessed

back press

0

Example:

public class MyFragment extends Fragment {

    @Override
    public void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        // This callback will only be called when MyFragment is at least Started.
        OnBackPressedCallback callback = new OnBackPressedCallback(true /* enabled by default */) {
            @Override
            public boolean handleOnBackPressed() {
                // Handle the back button event
            }
        });
        requireActivity().getOnBackPressedDispatcher().addCallback(this, callback);

        // The callback can be enabled or disabled here or in handleOnBackPressed()
    }
    ...
}

More explanations in android official guide: Provide custom back navigation

Jurij Pitulja
  • 5,546
  • 4
  • 19
  • 25