package Ġme . l wb . adapter _ demo . ui . adapter Ċ Ċ import Ġandroid . widget . ImageView Ċ import Ġandroidx . paging . Paging Data Adapter Ċ import Ġandroidx . recyclerview . widget . Concat Adapter Ċ import Ġme . l wb . adapter _ demo . R Ċ import Ġme . l wb . adapter _ demo . base . ui . Virtual View Binding Inflater Ċ import Ġme . l wb . adapter _ demo . databinding . Footer Project Binding Ċ import Ġme . l wb . adapter _ demo . databinding . Header Project Binding Ċ import Ġme . l wb . adapter _ demo . databinding . Layout Empty Binding Ċ import Ġme . l wb . bind in adapter . paging .* Ċ import Ġme . l wb . utils . android . ext . show Child Only Ċ Ċ /** Ċ Ġ* ĠCreated Ġby Ġve 3 3 4 4 @ qq . com Ġon Ġ 2 0 2 1 / 1 0 / 1 2 . Ċ Ġ*/ ĊĊĊ Ċ fun ĠP aging Data Adapter < *, Ġ* >. config Paging With Header (): ĠConcat Adapter Ġ{ ĊĠĠĠ Ġ// éĩįæĸ° å¯¹ Adapter è¿Ľè¡Į ä¾Ŀ æ¬¡ æĭ ¼ æİ¥ ĊĠĠĠ Ġreturn Ġre arrange () Ġ{ ĊĠĠĠĠĠĠĠ Ġ// æ·»åĬł Ġheader ĊĠĠĠĠĠĠĠ Ġlayout Content ( Virtual View Binding Inflater Ġ{ parent , _, _-> ĠImageView ( parent . context ) Ġ} :: inflate ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . content View . setImage Resource ( R . drawable . ic _ launcher _ background ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ// æ·»åĬł Ġheader ĊĠĠĠĠĠĠĠ Ġlayout Content ( Header Project Binding :: inflate ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . tips . text Ġ= Ġ" Header 2 " ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ// æ·»åĬł åĪĨé¡µ åĨħå®¹ ĊĠĠĠĠĠĠĠ Ġpaging Content () ĊĠĠĠĠĠĠĠ Ġ// æ·»åĬł åĬłè½½ çĬ¶æĢģ ĊĠĠĠĠĠĠĠ Ġload State Content ( Footer Project Binding :: inflate ) Ġ{ Ġload State Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġload State . on Idle Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ç©º éĹ ² ï¼Į éļĲèĹı æīĢæľī view ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . root . show Child Only Ġ{ Ġfalse Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}. on Loading Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// åĬłè½½ ä¸Ń ï¼Į æĺ¾ç¤º åĬłè½½ ä¸Ń ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . root . show Child Only Ġ{ Ġit Ġ== Ġbinding . progress Bar Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}. on End Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// æ²¡æľī æĽ´å¤ļ æķ°æį® äºĨ ï¼Į æĺ¾ç¤º æ²¡æľī æĽ´å¤ļ æķ°æį® ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . root . show Child Only Ġ{ Ġit Ġ== Ġbinding . reach End Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}. onError Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// åĬłè½½ å¤±è´¥ ï¼Į æĺ¾ç¤º åĬłè½½ å¤±è´¥ ãĢģ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . root . show Child Only Ġ{ Ġit Ġ== Ġbinding . load Error Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . load Error . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// çĤ¹åĩ» éĩį è¯ķ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġretry () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . root . show Child Only Ġ{ Ġit Ġ== Ġbinding . progress Bar Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// æīĭåĬ¨ æĺ¾ç¤º åĬłè½½ ä¸Ń ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ// æ·»åĬł æķ°æį® ç©º å¸ĥå±Ģ ï¼Ī æķ°æį® ä¸ºç©º æĹ¶ æĺ¾ç¤º ï¼ī ĊĠĠĠĠĠĠĠ Ġempty State Content ( Layout Empty Binding :: inflate ) ĊĠĠĠĠĠĠĠ Ġ// æ·»åĬł footer ĊĠĠĠĠĠĠĠ Ġlayout Content ( Header Project Binding :: inflate ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . tips . text Ġ= Ġ" Footer 1 " ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }