package Ġcom . ang cy o . dsl adapter Ċ Ċ /** Ċ Ġ* Ġ[ RecyclerView . Adapter ] Ġ åĬłè½½ æĽ´å¤ļ å®ŀçİ° Ċ Ġ* ĠEmail : ang cy o @ 1 2 6 . com Ċ Ġ* Ġ@ author Ġang cy o Ċ Ġ* Ġ@ date Ġ 2 0 1 9 / 0 8 / 0 9 Ċ Ġ* ĠCopyright Ġ( c ) Ġ 2 0 1 9 ĠSh en Z hen ĠO & M ĠCloud ĠCo ., ĠLtd . ĠAll Ġrights Ġreserved . Ċ Ġ*/ Ċ open Ġclass ĠD sl Load More Item Ġ: ĠBase Dsl State Item () Ġ{ ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġitem State Layout Map [ ADAPTER _ LOAD _ NORMAL ] Ġ= ĠR . layout . base _ loading _ layout ĊĠĠĠĠĠĠĠ Ġitem State Layout Map [ ADAPTER _ LOAD _ LOADING ] Ġ= ĠR . layout . base _ loading _ layout ĊĠĠĠĠĠĠĠ Ġitem State Layout Map [ ADAPTER _ LOAD _ NO _ MORE ] Ġ= ĠR . layout . base _ no _ more _ layout ĊĠĠĠĠĠĠĠ Ġitem State Layout Map [ ADAPTER _ LOAD _ ERROR ] Ġ= ĠR . layout . base _ error _ layout ĊĠĠĠĠĠĠĠ Ġitem State Layout Map [ ADAPTER _ LOAD _ RETRY ] Ġ= ĠR . layout . base _ error _ layout ĊĊĠĠĠĠĠĠĠ Ġon Item View Detached To Window Ġ= Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( item Enable Load More ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// åĬłè½½ å¤±è´¥ æĹ¶ , Ġä¸ĭ æ¬¡ æĺ¯åĲ¦ è¿ĺ éľĢè¦ģ åĬłè½½ æĽ´å¤ļ ? ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( item State Ġ== ĠAD AP TER _ LOAD _ ERROR ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġitem State Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠAD AP TER _ LOAD _ RETRY ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġthis Are Contents The Same Ġ= Ġ{ Ġ_, Ġ_ Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfalse ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġ/** æŃ£å¸¸ çĬ¶æĢģ , Ġ çŃīå¾ħ åĬłè½½ æĽ´å¤ļ */ ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠAD AP TER _ LOAD _ NORMAL Ġ= Ġ 0 ĊĠĠĠĠĠĠĠ Ġ/** åĬłè½½ æĽ´å¤ļ ä¸Ń */ ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠAD AP TER _ LOAD _ LOADING Ġ= Ġ 1 ĊĠĠĠĠĠĠĠ Ġ/** æĹł æĽ´å¤ļ */ ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠAD AP TER _ LOAD _ NO _ MORE Ġ= Ġ 2 ĊĠĠĠĠĠĠĠ Ġ/** åĬłè½½ å¤±è´¥ */ ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠAD AP TER _ LOAD _ ERROR Ġ= Ġ 1 0 ĊĠĠĠĠĠĠĠ Ġ/** åĬłè½½ å¤±è´¥ , Ġ èĩªåĬ¨ éĩį è¯ķ ä¸Ń */ ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠAD AP TER _ LOAD _ RETRY Ġ= Ġ 1 1 ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** æĺ¯åĲ¦ æ¿Ģ æ´ »åĬł è½½ æĽ´å¤ļ , Ġé»ĺè®¤ åħ³éĹŃ */ ĊĠĠĠ Ġvar Ġitem Enable Load More Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġset ( value ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfield Ġ= Ġvalue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġitem State Ġ= ĠAD AP TER _ LOAD _ NORMAL ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** åĬłè½½ æĽ´å¤ļ åĽŀè°ĥ */ ĊĠĠĠ Ġvar ĠonLoad More : Ġ( Dsl ViewHolder ) Ġ-> ĠUnit Ġ= Ġ{ ĊĠĠĠĠĠĠĠ ĠL . i ("[ Dsl Load More Item ] Ġ è§¦åıĳ åĬłè½½ æĽ´å¤ļ ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Item Bind ( ĊĠĠĠĠĠĠĠ Ġitem Holder : ĠD sl ViewHolder , ĊĠĠĠĠĠĠĠ Ġitem Position : ĠInt , ĊĠĠĠĠĠĠĠ Ġadapter Item : ĠD sl Adapter Item ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġitem Holder . item View . setWidth Height (- 1 , Ġ- 2 ) ĊĠĠĠĠĠĠĠ Ġsuper . on Item Bind ( item Holder , Ġitem Position , Ġadapter Item ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġ_ on Bind State Layout ( item Holder : ĠD sl ViewHolder , Ġstate : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper ._ on Bind State Layout ( item Holder , Ġstate ) ĊĊĠĠĠĠĠĠĠ Ġif Ġ( item Enable Load More ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( item State Ġ== ĠAD AP TER _ LOAD _ NORMAL Ġ|| Ġitem State Ġ== ĠAD AP TER _ LOAD _ LOADING ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ_ notify Load More ( item Holder ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( item State Ġ== ĠAD AP TER _ LOAD _ ERROR ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġitem Holder . click Item Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( item State Ġ== ĠAD AP TER _ LOAD _ ERROR Ġ|| Ġitem State Ġ== ĠAD AP TER _ LOAD _ RETRY ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// å¤±è´¥ çļĦ æĥħåĨµä¸ĭ , Ġ çĤ¹åĩ» è§¦åıĳ éĩįæĸ° åĬłè½½ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ_ notify Load More ( item Holder ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġupdate Adapter Item () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġitem Holder . item View . is Clickable Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġitem Holder . item View . is Clickable Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġopen Ġfun Ġ_ notify Load More ( item Holder : ĠD sl ViewHolder ) Ġ{ ĊĠĠĠĠĠĠĠ Ġitem State Ġ= ĠAD AP TER _ LOAD _ LOADING ĊĠĠĠĠĠĠĠ Ġif Ġ(!_ is Load More ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ_ is Load More Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġitem Holder . post Ġ{ ĠonLoad More ( item Holder ) Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// æĺ¯åĲ¦ å·²ç»ı åľ¨ åĬłè½½ æĽ´å¤ļ ĊĠĠĠ Ġvar Ġ_ is Load More Ġ= Ġfalse ĊĊĠĠĠ Ġoverride Ġfun Ġ_ on Item StateChange ( old : ĠInt , Ġvalue : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( old Ġ!= Ġvalue Ġ&& Ġvalue Ġ!= ĠAD AP TER _ LOAD _ LOADING ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ_ is Load More Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġsuper ._ on Item StateChange ( old , Ġvalue ) ĊĠĠĠ Ġ} Ċ }