package Ġcom . zh u inden . simple stack comp o ses imple example Ċ Ċ import Ġandroid . annotation . Suppress Lint Ċ import Ġandroidx . compose . foundation . layout . Arrange ment Ċ import Ġandroidx . compose . foundation . layout . Column Ċ import Ġandroidx . compose . foundation . layout . fill MaxSize Ċ import Ġandroidx . compose . material . Button Ċ import Ġandroidx . compose . material . Material Theme Ċ import Ġandroidx . compose . material . Text Ċ import Ġandroidx . compose . runtime . Composable Ċ import Ġandroidx . compose . runtime . Immutable Ċ import Ġandroidx . compose . ui . Alignment Ċ import Ġandroidx . compose . ui . Modifier Ċ import Ġandroidx . compose . ui . tool ing . preview . Preview Ċ import Ġcom . zh u inden . simple stack . Back stack Ċ import Ġcom . zh u inden . simple stack . Service Binder Ċ import Ġcom . zh u inden . simple stack compose integration . services . remember Service Ċ import Ġcom . zh u inden . simple stack extensions . services k tx . add Ċ import Ġcom . zh u inden . simple stack extensions . services k tx . re bind Ċ import Ġkotlinx . parcel ize . Parcel ize Ċ Ċ class ĠFirst Model ( ĊĠĠĠ Ġprivate Ġval Ġback stack : ĠBack stack Ċ ): ĠFirst Screen . Action Handler Ġ{ ĊĠĠĠ Ġoverride Ġfun Ġnavigate To Second () Ġ{ ĊĠĠĠĠĠĠĠ Ġback stack . goTo ( Second Key ()) ĊĠĠĠ Ġ} Ċ } Ċ Ċ @ Immutable Ċ @ Parcel ize Ċ data Ġclass ĠFirst Key ( val Ġtitle : ĠString ) Ġ: ĠCompose Key () Ġ{ ĊĠĠĠ Ġconstructor () Ġ: Ġthis (" Hello ĠFirst ĠScreen !") ĊĊĠĠĠ Ġ@ Composable ĊĠĠĠ Ġoverride Ġfun ĠScreen Composable ( modifier : ĠModifier ) Ġ{ ĊĠĠĠĠĠĠĠ ĠFirst Screen ( title , Ġmodifier ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġbind Services ( service Binder : ĠService Binder ) Ġ{ ĊĠĠĠĠĠĠĠ Ġwith ( service Binder ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġfirst Model Ġ= ĠFirst Model ( back stack ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġadd ( first Model ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġre bind < First Screen . Action Handler >( first Model ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ class ĠFirst Screen Ġprivate Ġconstructor () Ġ{ ĊĠĠĠ Ġfun Ġinterface ĠAction Handler Ġ{ ĊĠĠĠĠĠĠĠ Ġfun Ġnavigate To Second () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġ@ Composable ĊĠĠĠĠĠĠĠ Ġ@ Suppress Lint (" Composable Naming ") ĊĠĠĠĠĠĠĠ Ġoperator Ġfun Ġinvoke ( title : ĠString , Ġmodifier : ĠModifier Ġ= ĠModifier ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġevent Handler Ġ= Ġremember Service < Action Handler >() ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠColumn ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmodifier Ġ= Ġmodifier . fill MaxSize (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvertical Arrange ment Ġ= ĠArrange ment . Center , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhorizontal Alignment Ġ= ĠAlignment . Center H orizontally ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠButton ( onClick Ġ= Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠonClick Ġis Ġnot Ġa Ġcomposition Ġcontext , Ġmust Ġget Ġamb ients Ġabove ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġevent Handler . navigate To Second () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}, Ġcontent Ġ= Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠText ( title ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ @ Preview Ċ @ Composable Ċ fun ĠFirst Screen Preview () Ġ{ ĊĠĠĠ ĠMaterial Theme Ġ{ ĊĠĠĠĠĠĠĠ ĠFirst Screen (" This Ġis Ġa Ġpreview ") ĊĠĠĠ Ġ} Ċ }