Skip to content

Instantly share code, notes, and snippets.

@Stickerbox
Created March 30, 2018 10:27
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Stickerbox/c5bc8a55726c6e823903e6be605f22fe to your computer and use it in GitHub Desktop.
Save Stickerbox/c5bc8a55726c6e823903e6be605f22fe to your computer and use it in GitHub Desktop.
class NavigationController : Fragment() {
private lateinit var navigationView: NavigationView
lateinit var rootFragment: Fragment
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? {
return inflater.inflate(R.layout.fragment_navigation_controller, container, false)
}
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
navigationView = navigation_view
navigationView.rootFragment = rootFragment
navigationView.fragmentManager = childFragmentManager
navigationView.popToRoot()
}
fun pop() {
navigationView.pop()
}
fun popToRoot() {
navigationView.popToRoot()
}
fun push(fragment: Fragment) {
navigationView.push(fragment)
}
fun onBackPressed() : Boolean {
return if (!navigationView.canPop) {
false
} else {
navigationView.pop()
true
}
}
companion object {
fun newInstance(root: Fragment) : NavigationController {
val instance = NavigationController()
instance.rootFragment = root
return instance
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment