package Ġcom . example . words app Ċ Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . view .* Ċ import Ġandroidx . fragment . app . Fragment Ċ import Ġandroidx . navigation . Nav Action Ċ import Ġandroidx . navigation . Nav Controller Ċ import Ġandroidx . navigation . Nav Destination Ċ import Ġandroidx . navigation . Nav Directions Ċ import Ġandroidx . navigation . fragment . find Nav Controller Ċ import Ġcom . example . words app . Util . change Layout Ċ import Ġcom . example . words app . Util . setLayout Item Ċ import Ġcom . example . words app . databinding . Fragment Recycler view Binding Ċ Ċ class ĠLetter List Fragment : ĠFragment () Ġ{ ĊĠ Ġprivate Ġlateinit Ġvar Ġbinding : ĠFragment Recycler view Binding ĊĠ Ġprivate Ġlateinit Ġvar Ġnav Controller : ĠNav Controller ĊĠ Ġprivate Ġvar Ġis Linear Ġ= Ġtrue ĊĊĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠ Ġset Has Options Menu ( true ) ĊĠĠĠ Ġnav Controller Ġ= Ġfind Nav Controller () ĊĠ Ġ} ĊĊĠ Ġoverride Ġfun ĠonCreate Options Menu ( ĊĠĠĠ Ġmenu : ĠMenu , ĊĠĠĠ Ġinflater : ĠMenu Inflater ĊĠ Ġ) Ġ{ ĊĠĠĠ Ġinflater . inflate ( R . menu . layout _ menu , Ġmenu ) ĊĠĠĠ Ġmenu . find Item ( R . id . action _ switch _ layout )?. setLayout Item ( require Context (), Ġis Linear ) ĊĠ Ġ} ĊĊĠ Ġoverride Ġfun Ġon Options ItemSelected ( item : ĠMenuItem ): ĠBoolean Ġ= ĊĠĠĠ Ġif ( item . itemId Ġ== ĠR . id . action _ switch _ layout ) Ġ{ ĊĠĠĠĠĠ Ġis Linear Ġ= Ġ! is Linear ĊĠĠĠĠĠ Ġitem . setLayout Item ( require Context (), Ġis Linear ) ĊĠĠĠĠĠ Ġbinding . re cyclerView . change Layout ( is Linear ) ĊĠĠĠĠĠ Ġtrue ĊĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠ Ġsuper . on Options ItemSelected ( item ) ĊĠĠĠ Ġ} ĊĊĊĠ Ġoverride Ġfun ĠonCreate View ( ĊĠĠĠ Ġinflater : ĠLayoutInflater , ĊĠĠĠ Ġcontainer : ĠViewGroup ?, ĊĠĠĠ ĠsavedInstanceState : ĠBundle ? ĊĠ Ġ): ĠView Ġ{ ĊĠĠĠ Ġbinding Ġ= ĠFragment Recycler view Binding . inflate ( in flater ) ĊĠĠĠ Ġreturn Ġbinding . root ĊĠ Ġ} ĊĊĠ Ġoverride Ġfun Ġon View Created ( ĊĠĠĠ Ġview : ĠView , ĊĠĠĠ ĠsavedInstanceState : ĠBundle ? ĊĠ Ġ) Ġ{ ĊĠĠĠ Ġbinding . apply Ġ{ ĊĠĠĠĠĠ Ġre cyclerView . apply Ġ{ ĊĠĠĠĠĠĠĠ Ġadapter Ġ= ĠLetter Adapter Ġ{ ĊĠĠĠĠĠĠĠĠĠ Ġval Ġaction Ġ= ĠLetter List Fragment Directions . action Fragment Letter To Fragment Word ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . toString () ĊĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠ Ġnav Controller . navigate ( action ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġchange Layout ( is Linear ) ĊĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠ Ġ} Ċ }