Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- abstract class ChildFragment: Fragment() {
- interface Parent {
- fun titleChanged(newTitle: String?)
- fun changeChild(newChild: ChildFragment)
- fun changeContent(newContent: Fragment, addToBackStack: Boolean)
- val child: ChildFragment?
- }
- protected val parent: Parent?
- get() = if(parentFragment is Parent) {
- parentFragment as Parent
- } else null
- var title: String = ""
- set(value) {
- field = value
- parent?.titleChanged(value)
- }
- override fun onCreate(savedInstanceState: Bundle?) {
- super.onCreate(savedInstanceState)
- savedInstanceState?.getBundle(CHILD_FRAGMENT_STATE)?.apply {
- title = getString(TITLE_KEY)
- }
- }
- override fun onSaveInstanceState(outState: Bundle) {
- super.onSaveInstanceState(outState)
- outState.putBundle(CHILD_FRAGMENT_STATE, Bundle().apply {
- putString(TITLE_KEY, title)
- })
- }
- private companion object {
- private const val CHILD_FRAGMENT_STATE = "CHILD_FRAGMENT_STATE_KEY"
- private const val TITLE_KEY = "CHILD_FRAGMENT_TITLE_KEY"
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement