package Ġcom . z ak . list bottom sheet project Ċ Ċ import Ġandroid . graphics . Type face Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . util . Log Ċ import Ġandroid . widget . Toast Ċ import Ġandroidx . appcompat . app . AppCompatActivity Ċ import Ġandroidx . core . content . Context Compat Ċ import Ġcom . z ak . list bottom sheet . List Bottom Sheet Ċ import Ġcom . z ak . list bottom sheet . Multi List Bottom Sheet Ċ import Ġcom . z ak . list bottom sheet . Name Field Ċ import Ġkotlinx . android . synt hetic . main . activity _ main .* Ċ Ċ class ĠMainActivity Ġ: ĠAppCompatActivity () Ġ{ ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ ĠsetContentView ( R . layout . activity _ main ) Ċ Ċ // ĠĠĠĠĠĠĠ Ġval Ġtype face Ġ= ĠType face . createFrom Asset ( application Context . assets , Ġ" font / robot o _ bold . ttf ") ĊĊĠĠĠĠĠĠĠ Ġval Ġm List Ġ= ĠlistOf ( Category ( 1 , Ġ" Category Ġ 1 "), ĠCategory ( 2 , Ġ" Category Ġ 2 "), ĠCategory ( 3 , Ġ" Category Ġ 3 ")) ĊĠĠĠĠĠĠĠ Ġval Ġlist Sheet Ġ= ĠList Bottom Sheet . Builder < Category >( this ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. list ( m List ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. title (" Choose Ġone ") Ċ // ĠĠĠĠĠĠĠĠĠ Ġ. item Layout ( R . layout . custom _ list _ item ) Ġ// to Ġset Ġa Ġcustom Ġlayout Ġfor Ġlist Ġitems Ġinstead Ġof Ġthe Ġdefault Ġone ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. on Choose Item Callback Ġ{ Ġsheet : ĠList Bottom Sheet < Category >, Ġcategory : ĠCategory , Ġposition : ĠInt Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsheet . dismiss () Ġ// hide Ġthe Ġdialog ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog . d (" ## chosen _ cat ", Ġ" chosen Ġcategory Ġis Ġ${ category . name } Ġat Ġposition Ġ$ position ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. cancel able ( false ) Ġ// prevent Ġthe Ġsheet Ġfrom Ġbeing Ġcanceled Ġby Ġclicking Ġoutside Ġthe Ġsheet ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. cancel Button Visible ( true ) Ġ// show Ġthe Ġcancel Ġbutton ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. search able ( true ) Ċ // ĠĠĠĠĠĠĠĠĠ Ġ. selected Item Color ( Context Compat . getColor ( this , ĠR . color . color Accent )) Ġ// set Ġthe Ġselected Ġitem Ġcolor Ċ // ĠĠĠĠĠĠĠĠĠ Ġ. selected Item Index ( 0 ) Ġ// initial Ġthe Ġlist Ġwith Ġselected Ġitem ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. set ActionButton Title (" Continue ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. setOn Action Callback Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠToast . makeText ( this , Ġ" On ĠAction ĠButton ĠClick ed ", ĠToast . LENGTH _ SHORT ). show () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . dismiss () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Search Hint (" Search Ġhere ") Ġ// change Ġsearch Ġtext Ġhint Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Custom Type face ( type face ) Ġ// change Ġlist Ġitems Ġfont ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () Ċ Ċ // ĠĠĠĠĠĠĠ Ġlist Sheet . title Alignment Ġ= ĠGr avity . RIGHT Ġ// to Ġchange Ġtitle Ġtext Ġalignment Ċ // ĠĠĠĠĠĠĠ Ġlist Sheet . title Size Ġ= Ġ 1 8 F Ġ// to Ġchange Ġtitle Ġtext Ġsize Ċ // ĠĠĠĠĠĠĠ Ġlist Sheet . title Color Ġ= ĠContext Compat . getColor ( this , ĠR . color . color Primary ) Ġ// to Ġchange Ġtitle Ġtext Ġcolor Ċ // ĠĠĠĠĠĠĠ Ġlist Sheet . selected Item Index Ġ= Ġ 1 Ġ// to Ġchange Ġthe Ġselected Ġitem Ġafter Ġyou Ġbuild Ġthe Ġsheet ĊĊĠĠĠĠĠĠĠ Ġbtn Open Sheet . setOnClickListener Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġlist Sheet . show () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġmulti List Sheet Ġ= ĠMulti List Bottom Sheet . Builder < Category >( this ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. list ( m List ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. title (" Choose Ġcategories ") Ċ // ĠĠĠĠĠĠĠĠĠ Ġ. item Layout ( R . layout . custom _ list _ item ) Ġ// to Ġset Ġa Ġcustom Ġlayout Ġfor Ġlist Ġitems Ġinstead Ġof Ġthe Ġdefault Ġone ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. on Choose Item Callback Ġ{ Ġsheet , Ġitem , Ġposition Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog . d (" ## chosen _ cat ", Ġ" chosen Ġcategory Ġis Ġ${ item . name } Ġat Ġposition Ġ$ position ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. cancel able ( false ) Ġ// prevent Ġthe Ġsheet Ġfrom Ġbeing Ġcanceled Ġby Ġclicking Ġoutside Ġthe Ġsheet ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. cancel Button Visible ( true ) Ġ// show Ġthe Ġcancel Ġbutton ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. search able ( true ) Ċ // ĠĠĠĠĠĠĠĠĠ Ġ. selected Item Color ( Context Compat . getColor ( this , ĠR . color . color Accent )) Ġ// set Ġthe Ġselected Ġitem Ġcolor ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. selected Item BackgroundColor ( Context Compat . getColor ( this , ĠR . color . light Grey )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. set ActionButton Title (" Continue ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. setOn Action Callback Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsheet , Ġselected Items Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠToast . makeText ( this , Ġ" On ĠAction ĠButton ĠClick ed ĠWith Ġ${ selected Items . size } Ġitems Ġselected ", ĠToast . LENGTH _ SHORT ). show () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsheet . dismiss () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Search Hint (" Search Ġhere ") Ġ// change Ġsearch Ġtext Ġhint Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Custom Type face ( type face ) Ġ// change Ġlist Ġitems Ġfont ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () Ċ Ċ // ĠĠĠĠĠĠĠ Ġmulti List Sheet . title Alignment Ġ= ĠGr avity . RIGHT Ġ// to Ġchange Ġtitle Ġtext Ġalignment Ċ // ĠĠĠĠĠĠĠ Ġmulti List Sheet . title Size Ġ= Ġ 1 8 F Ġ// to Ġchange Ġtitle Ġtext Ġsize Ċ // ĠĠĠĠĠĠĠ Ġmulti List Sheet . title Color Ġ= ĠContext Compat . getColor ( this , ĠR . color . color Primary ) Ġ// to Ġchange Ġtitle Ġtext Ġcolor Ċ // ĠĠĠĠĠĠĠ Ġmulti List Sheet . selected Item Index Ġ= Ġ 1 Ġ// to Ġchange Ġthe Ġselected Ġitem Ġafter Ġyou Ġbuild Ġthe Ġsheet ĊĊĠĠĠĠĠĠĠ Ġbtn Open Multi Sheet . setOnClickListener Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġmulti List Sheet . show () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ} Ċ } ĊĊĊ Ċ data Ġclass ĠCategory ( val Ġid : ĠInt , Ġ@ Name Field Ġvar Ġname : ĠString ) Ċ