Instantly share code, notes, and snippets.
Stickerbox/NavigationController.kt
Created Mar 30, 2018
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