package Ġcom . air bnb . mv rx . sample . features . parent fragment Ċ Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroidx . navigation . fragment . find Nav Controller Ċ import Ġandroidx . navigation . ui . setup With Nav Controller Ċ import Ġcom . air bnb . mv rx . Base Mv Rx Fragment Ċ import Ġcom . air bnb . mv rx . Mv Rx State Ċ import Ġcom . air bnb . mv rx . fragment ViewModel Ċ import Ġcom . air bnb . mv rx . sample . R Ċ import Ġcom . air bnb . mv rx . sample . core . Mv Rx ViewModel Ċ import Ġcom . air bnb . mv rx . with State Ċ import Ġkotlinx . android . synt hetic . main . fragment _ parent . textView Ċ import Ġkotlinx . android . synt hetic . main . fragment _ parent . toolbar Ċ Ċ data Ġclass ĠCounter State ( val Ġcount : ĠInt Ġ= Ġ 0 ) Ġ: ĠM v Rx State Ċ class ĠCounter ViewModel ( state : ĠCounter State ) Ġ: ĠM v Rx ViewModel < Counter State >( state ) Ġ{ ĊĠĠĠ Ġfun Ġincrement Count () Ġ= ĠsetState Ġ{ Ġcopy ( count Ġ= Ġcount Ġ+ Ġ 1 ) Ġ} Ċ } Ċ Ċ class ĠParent Fragment Ġ: ĠBase Mv Rx Fragment () Ġ{ ĊĊĠĠĠ Ġprivate Ġval ĠviewModel : ĠCounter ViewModel Ġby Ġfragment ViewModel () ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate View ( in flater : ĠLayoutInflater , Ġcontainer : ĠViewGroup ?, ĠsavedInstanceState : ĠBundle ?): ĠView ? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġinflater . inflate ( R . layout . fragment _ parent , Ġcontainer , Ġfalse ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon View Created ( view : ĠView , ĠsavedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġtoolbar . setup With Nav Controller ( find Nav Controller ()) ĊĠĠĠĠĠĠĠ ĠtextView . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠviewModel . increment Count () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġchild FragmentManager . beginTransaction () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. replace ( R . id . child Container , ĠChild Fragment ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. commit () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġinvalidate () Ġ= Ġwith State ( viewModel ) Ġ{ Ġstate Ġ-> ĊĠĠĠĠĠĠĠ ĠtextView . text Ġ= Ġ" Parent Fragment : ĠCount : Ġ${ state . count }" ĊĠĠĠ Ġ} Ċ }