/* Ċ Ġ* ĠCopyright Ġ 2 0 2 1 ĠThe ĠAndroid ĠOpen ĠSource ĠProject Ċ Ġ* Ċ Ġ* ĠLicensed Ġunder Ġthe ĠApache ĠLicense , ĠVersion Ġ 2 . 0 Ġ( the Ġ" License "); Ċ Ġ* Ġyou Ġmay Ġnot Ġuse Ġthis Ġfile Ġexcept Ġin Ġcompliance Ġwith Ġthe ĠLicense . Ċ Ġ* ĠYou Ġmay Ġobtain Ġa Ġcopy Ġof Ġthe ĠLicense Ġat Ċ Ġ* Ċ Ġ* ĠĠĠĠĠ Ġhttp :// www . apache . org / licenses / LICENSE - 2 . 0 Ċ Ġ* Ċ Ġ* ĠUnless Ġrequired Ġby Ġapplicable Ġlaw Ġor Ġagreed Ġto Ġin Ġwriting , Ġsoftware Ċ Ġ* Ġdistributed Ġunder Ġthe ĠLicense Ġis Ġdistributed Ġon Ġan Ġ" AS ĠIS " ĠBASIS , Ċ Ġ* ĠWITHOUT ĠWARRANTIES ĠOR ĠCONDITIONS ĠOF ĠANY ĠKIND , Ġeither Ġexpress Ġor Ġimplied . Ċ Ġ* ĠSee Ġthe ĠLicense Ġfor Ġthe Ġspecific Ġlanguage Ġgoverning Ġpermissions Ġand Ċ Ġ* Ġlimitations Ġunder Ġthe ĠLicense . Ċ Ġ*/ Ċ Ċ package Ġandroidx . compose . material . samples Ċ Ċ import Ġandroidx . annotation . Sample d Ċ import Ġandroidx . compose . material . Dropdown MenuItem Ċ import Ġandroidx . compose . material . Experimental Material Api Ċ import Ġandroidx . compose . material . Ex posed Dropdown Menu Box Ċ import Ġandroidx . compose . material . Ex posed Dropdown Menu Defaults Ċ import Ġandroidx . compose . material . Text Ċ import Ġandroidx . compose . material . TextField Ċ import Ġandroidx . compose . runtime . Composable Ċ import Ġandroidx . compose . runtime . getValue Ċ import Ġandroidx . compose . runtime . mutable State Of Ċ import Ġandroidx . compose . runtime . remember Ċ import Ġandroidx . compose . runtime . setValue Ċ Ċ @ Opt In ( Experimental Material Api :: class ) Ċ @ Sample d Ċ @ Composable Ċ fun ĠEx posed Dropdown Menu Sample () Ġ{ ĊĠĠĠ Ġval Ġoptions Ġ= ĠlistOf (" Option Ġ 1 ", Ġ" Option Ġ 2 ", Ġ" Option Ġ 3 ", Ġ" Option Ġ 4 ", Ġ" Option Ġ 5 ") ĊĠĠĠ Ġvar Ġexpanded Ġby Ġremember Ġ{ Ġmutable State Of ( false ) Ġ} ĊĠĠĠ Ġvar Ġselected Option Text Ġby Ġremember Ġ{ Ġmutable State Of ( options [ 0 ]) Ġ} ĊĠĠĠ Ġ// ĠWe Ġwant Ġto Ġreact Ġon Ġtap / press Ġon ĠTextField Ġto Ġshow Ġmenu ĊĠĠĠ ĠEx posed Dropdown Menu Box ( ĊĠĠĠĠĠĠĠ Ġexpanded Ġ= Ġexpanded , ĊĠĠĠĠĠĠĠ Ġon Expanded Change Ġ= Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġexpanded Ġ= Ġ! expanded ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ ĠTextField ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠreadOnly Ġ= Ġtrue , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvalue Ġ= Ġselected Option Text , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġon Value Change Ġ= Ġ{ Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlabel Ġ= Ġ{ ĠText (" Label ") Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtrailing Icon Ġ= Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠEx posed Dropdown Menu Defaults . Trailing Icon ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġexpanded Ġ= Ġexpanded ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcolors Ġ= ĠEx posed Dropdown Menu Defaults . textField Colors () ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ ĠEx posed Dropdown Menu ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġexpanded Ġ= Ġexpanded , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġon Dismiss Request Ġ= Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġexpanded Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoptions . forEach Ġ{ Ġselection Option Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠDropdown MenuItem ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠonClick Ġ= Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġselected Option Text Ġ= Ġselection Option ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġexpanded Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠText ( text Ġ= Ġselection Option ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ @ Opt In ( Experimental Material Api :: class ) Ċ @ Sample d Ċ @ Composable Ċ fun ĠEdit able Ex posed Dropdown Menu Sample () Ġ{ ĊĠĠĠ Ġval Ġoptions Ġ= ĠlistOf (" Option Ġ 1 ", Ġ" Option Ġ 2 ", Ġ" Option Ġ 3 ", Ġ" Option Ġ 4 ", Ġ" Option Ġ 5 ") ĊĠĠĠ Ġvar Ġexpanded Ġby Ġremember Ġ{ Ġmutable State Of ( false ) Ġ} ĊĠĠĠ Ġvar Ġselected Option Text Ġby Ġremember Ġ{ Ġmutable State Of ("") Ġ} ĊĠĠĠ ĠEx posed Dropdown Menu Box ( ĊĠĠĠĠĠĠĠ Ġexpanded Ġ= Ġexpanded , ĊĠĠĠĠĠĠĠ Ġon Expanded Change Ġ= Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġexpanded Ġ= Ġ! expanded ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ ĠTextField ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvalue Ġ= Ġselected Option Text , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġon Value Change Ġ= Ġ{ Ġselected Option Text Ġ= Ġit Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlabel Ġ= Ġ{ ĠText (" Label ") Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtrailing Icon Ġ= Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠEx posed Dropdown Menu Defaults . Trailing Icon ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġexpanded Ġ= Ġexpanded ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcolors Ġ= ĠEx posed Dropdown Menu Defaults . textField Colors () ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ// Ġfilter Ġoptions Ġbased Ġon Ġtext Ġfield Ġvalue ĊĠĠĠĠĠĠĠ Ġval Ġfiltering Options Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoptions . filter Ġ{ Ġit . contains ( selected Option Text , Ġignore Case Ġ= Ġtrue ) Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ( filtering Options . isNotEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠEx posed Dropdown Menu ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġexpanded Ġ= Ġexpanded , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġon Dismiss Request Ġ= Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġexpanded Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfiltering Options . forEach Ġ{ Ġselection Option Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠDropdown MenuItem ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠonClick Ġ= Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġselected Option Text Ġ= Ġselection Option ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġexpanded Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠText ( text Ġ= Ġselection Option ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }