package Ġio . github . chen fe i 0 9 2 8 . binder Ċ Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroidx . view binding . View Binding Ċ import Ġio . github . chen fe i 0 9 2 8 . widget . recyclerview . adapter . View Binding Holder Ċ Ċ /** Ċ Ġ* Ġ çĶ¨äºİ æıĲä¾Ľ æİ¥åı£ ä»¥ æĶ¯æĮģ åıĮ åĲĳ ç»ĳå®ļ Ċ Ġ* Ċ Ġ* Ġ@ author ĠChen Fe i ( chen fe i 0 9 2 8 @ gmail . com ) Ċ Ġ* Ġ@ date Ġ 2 0 1 9 - 0 9 - 0 6 Ġ 0 9 : 5 0 Ċ Ġ*/ Ċ abstract Ġclass ĠTwo Way Layout Binder < Bean , ĠV Ġ: ĠView Binding >( ĊĠĠĠ Ġview Binding Inflater : Ġ( LayoutInflater , ĠViewGroup , ĠBoolean ) Ġ-> ĠV , Ċ ) Ġ: ĠBase Binding Binder < Bean , ĠV >( view Binding Inflater ) Ġ{ ĊĊĠĠĠ Ġoverride Ġfun Ġon Bind ViewHolder ( ĊĠĠĠĠĠĠĠ Ġholder : ĠView Binding Holder < Bean , ĠV >, Ġitem : ĠBean , Ġpayload s : ĠList < Any >, ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Bind ViewHolder ( holder , Ġitem , Ġpayload s ) ĊĠĠĠĠĠĠĠ Ġ// Ġ åĲĮæŃ¥ view çĬ¶æĢģ ĊĠĠĠĠĠĠĠ Ġsync Bean Changed ( holder , Ġtrue ) ĊĠĠĠĠĠĠĠ Ġ// Ġ ç»ĳå®ļ view åĪ° bean ĊĠĠĠĠĠĠĠ Ġbind Two Way Callback ( holder ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon View Re cyc led ( holder : ĠView Binding Holder < Bean , ĠV >) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on View Re cyc led ( holder ) ĊĠĠĠĠĠĠĠ Ġ// Ġ è§£ éĻ¤ bean åĪ° view çļĦ ç»ĳå®ļ ĊĠĠĠĠĠĠĠ Ġun bind Two Way Callback ( holder ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ åĲĮæŃ¥ View æĺ¾ç¤º çĬ¶æĢģ ï¼Ī ä»İ bean è®¾ç½® åĪ° view ä¸Ĭ ï¼īãĢĤ ĊĠĠĠĠ Ġ* Ġ çĶ±äºİ binder çļĦ è®¾è®¡ æĢĿ æĥ³ ä¸º åıĮ åĲĳ ç»ĳå®ļ ï¼Ī å½ĵ bean æķ°æį® åĪ·æĸ° åĲİ view èĩª çĦ¶ è¢« åĲĮæŃ¥ æĽ´æĸ° ï¼īï¼Į æķħ è°ĥçĶ¨ æĸ¹ åľ¨ ä¿®æĶ¹ bean çĬ¶æĢģ åĲİ åı¯èĥ½ ä¸įä¼ļ éĢļçŁ¥ éĢĤ éħį åĻ¨ åĪ·æĸ° ï¼Į ĊĠĠĠĠ Ġ* ĠéľĢè¦ģ åľ¨ æŃ¤ å°Ĩ bean çļĦæķ°æį® åĲĮæŃ¥ åĪ° view ä¸Ĭ ãĢĤ ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġfrom On Bind Ġå¦Ĥæŀľ æľ¬ æ¬¡ è°ĥçĶ¨ æĸ¹åĲĳ æĺ¯ çĶ± åı¯ è§Ĥ å¯Ł å±ŀæĢ§ çļĦ åıĺåĮĸ éĢļçŁ¥ åĪ° [ holder ] æĹ¶ ä¸º true ãĢĤ ĊĠĠĠĠ Ġ* Ġå¦Ĥæŀľ æĺ¯ [ holder ] åħ¶ åĬłè½½ åĩºæĿ¥ æĹ¶ åĲĮæŃ¥ çĬ¶æĢģ ï¼Į ä¸º false ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprotected Ġabstract Ġfun Ġsync Bean Changed ( ĊĠĠĠĠĠĠĠ Ġholder : ĠView Binding Holder < Bean , ĠV >, Ġfrom On Bind : ĠBoolean , ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġæ·»åĬł åıĮ åĲĳ ç»ĳå®ļ åĽŀè°ĥ ĊĠĠĠĠ Ġ* Ġå½ĵ view Holder è¢« æ·»åĬł åĪ° window æĪĸ è¿Ľè¡Į å¡« åħħ åĨħå®¹ æĹ¶ åĽŀè°ĥ ï¼Į éĢļçŁ¥ è¯¥ item å°Ĩ è¦ģ è¢« æĺ¾ç¤º ï¼Į éľĢè¦ģ å¯¹ åħ¶ çĬ¶æĢģ è¿Ľè¡Į çĽĳåĲ¬ ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprotected Ġabstract Ġfun Ġbind Two Way Callback ( holder : ĠView Binding Holder < Bean , ĠV >) ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ è§£ éĻ¤ åıĮ åĲĳ ç»ĳå®ļ åĽŀè°ĥ ĊĠĠĠĠ Ġ* Ġåľ¨ view Holder è¢« åĽŀ æĶ¶ æĪĸ ä»İ window ä¸Ń ç§»éĻ¤ æĹ¶ ä¼ļ åĽŀè°ĥ ï¼Į ä»¥ éĢļçŁ¥ è¯¥ item ä¸į åľ¨ æĺ¾ç¤º ä¸Ń ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprotected Ġabstract Ġfun Ġun bind Two Way Callback ( holder : ĠView Binding Holder < Bean , ĠV >) Ċ } Ċ