package Ġcom . p anda . p da . library . android . material . extension Ċ Ċ import Ġandroid . view . View Ċ import Ġandroidx . core . view . forEach Ċ import Ġandroidx . core . view . iterator Ċ import Ġcom . google . android . material . bottomnavigation . Bottom Navigation View Ċ import Ġandroidx . navigation . Nav Controller Ċ import Ġandroidx . navigation . Nav Options Ċ import Ġcom . p anda . p da . library . android . R Ċ Ċ /** Ċ Ġ* Ġcreated Ġby ĠAn Ji wei Ġ 2 0 2 1 / 8 / 2 0 Ċ Ġ*/ Ċ Ċ fun ĠBottom Navigation View . hide When Destination Exclude ( nav Controller : ĠNav Controller ): ĠBottom Navigation View Ġ= ĊĠĠĠ Ġthis . let Ġ{ Ġbottom Nav Ġ-> ĊĠĠĠĠĠĠĠ Ġval Ġmenu Item Ids Ġ= Ġbottom Nav . menu . iterator (). as Sequence (). toList (). map Ġ{ Ġit . itemId Ġ} ĊĠĠĠĠĠĠĠ Ġnav Controller . add On Destination Changed Listener Ġ{ Ġ_, Ġdestination , Ġ_ Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġvisible Ġ= Ġdestination . id Ġin Ġmenu Item Ids ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbottom Nav . visibility Ġ= Ġif Ġ( visible ) ĠView . VISIBLE Ġelse ĠView . GONE ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġbottom Nav ĊĠĠĠ Ġ} Ċ Ċ fun ĠBottom Navigation View . custom Icons (): ĠBottom Navigation View Ġ= ĊĠĠĠ Ġthis . apply Ġ{ Ġitem Icon Tint List Ġ= Ġnull Ġ} Ċ Ċ fun ĠBottom Navigation View . setup Nav Controller To Final Stack ( nav Controller : ĠNav Controller ): ĠBottom Navigation View Ġ= ĊĠĠĠ Ġthis . apply Ġ{ ĊĠĠĠĠĠĠĠ Ġset On ItemSelected Listener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġ è¦ĨçĽĸ é»ĺè®¤ back Stack éĢ»è¾ĳ ï¼Į éģ¿åħį è¿ĶåĽŀ åĪ° æľĢ start Destination ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġbuilder Ġ= ĠNav Options . Builder () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Launch Single Top ( true ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Enter Anim ( R . anim . nav _ default _ enter _ anim ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Exit Anim ( R . anim . nav _ default _ exit _ anim ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Pop Enter Anim ( R . anim . nav _ default _ pop _ enter _ anim ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Pop Exit Anim ( R . anim . nav _ default _ pop _ exit _ anim ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbuilder . set Pop Up To ( nav Controller . graph . id , Ġfalse ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġoptions Ġ= Ġbuilder . build () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnav Controller . navigate ( it . itemId , Ġnull , Ġoptions ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtrue ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ}