Skip to content

Instantly share code, notes, and snippets.

@WilderMinds
Last active April 24, 2021 18:31
Show Gist options
  • Save WilderMinds/52ab7f4c7d7aa0b28a8438f1d7b47e45 to your computer and use it in GitHub Desktop.
Save WilderMinds/52ab7f4c7d7aa0b28a8438f1d7b47e45 to your computer and use it in GitHub Desktop.
Navigating backwards when implementing the CustomNavigator
class RandomViewsFragment : Fragment() {
private val customNavigator = CustomNavigator()
/**
* Intercept onBackPressed
*/
private val onBackPressedCallback : OnBackPressedCallback = object : OnBackPressedCallback(true){
override fun handleOnBackPressed() {
back()
}
}
/**
* Register onBackPressedCallback
*/
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
requireActivity().onBackPressedDispatcher.addCallback(this, onBackPressedCallback)
}
/**
* Navigate backwards
*
* Hand navigation control back to the NavController when there
* are no more custom views
*/
private fun back() {
val success = customNavigator.back();
if (!success){
findNavController().popBackStack()
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment