package Ġio . github . chen fe i 0 9 2 8 . widget . recyclerview . listener Ċ Ċ import Ġandroid . animation . Value Animator Ċ import Ġandroid . view . MenuItem Ċ Ċ /** Ċ Ġ* ĠRecyclerView Ġæ » ĳ åĬ¨ æĹ¶ éļĲèĹı ãĢģ æĺ¾ç¤º menu Ċ Ġ* Ċ Ġ* Ġ@ author ĠChen Fe i ( chen fe i 0 9 2 8 @ gmail . com ) Ċ Ġ* Ġ@ date Ġ 2 0 2 1 - 0 5 - 2 7 Ġ 1 5 : 1 5 Ċ Ġ*/ Ċ class ĠRecyclerView Scroll Position OutOf Index Menu Visible Listener ( ĊĠĠĠ Ġprivate Ġval Ġmenu Getter : Ġ() Ġ-> ĠMenuItem ? Ċ ) Ġ: ĠRecyclerView Scroll Position OutOf Index Listener () Ġ{ ĊĠĠĠ Ġoverride Ġvar Ġfocus Index : ĠInt Ġ= Ġ- 1 ĊĊĠĠĠ Ġprivate Ġvar Ġtarget Search Bar Visible : ĠBoolean Ġ= Ġfalse ĊĠĠĠ Ġprivate Ġvar Ġicon Animator : ĠValue Animator ? Ġ= Ġnull ĊĊĠĠĠ Ġoverride Ġfun Ġon Position OutOf Focus Index ( out Of Index : ĠBoolean ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( target Search Bar Visible Ġ== Ġout Of Index ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġmenu Ġ= Ġmenu Getter () Ġ?: Ġreturn ĊĠĠĠĠĠĠĠ Ġval Ġicon Ġ= Ġmenu . icon Ġ?: Ġreturn ĊĠĠĠĠĠĠĠ Ġval Ġanim ator Ġ= Ġicon Animator Ġ?: ĠValue Animator ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. of Int ( 0 , Ġ 2 5 5 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġduration Ġ= Ġ 3 0 0 L ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadd Update Listener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġalpha Ġ= Ġit . animated Value Ġas ĠInt ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġicon . alpha Ġ= Ġalpha ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġicon . invalidate Self () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmenu . isEnabled Ġ= Ġalpha Ġ!= Ġ 0 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġicon Animator Ġ= Ġthis ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġanim ator . setInt Values ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ* if Ġ( out Of Index ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġint ArrayOf ( 0 , Ġ 2 5 5 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġint ArrayOf ( 2 5 5 , Ġ 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġanim ator . start () ĊĠĠĠĠĠĠĠ Ġtarget Search Bar Visible Ġ= Ġout Of Index ĊĠĠĠ Ġ} Ċ } Ċ