package Ġcom . numero . it ube . view Ċ Ċ import Ġandroidx . recyclerview . widget . Linear LayoutManager Ċ import Ġandroidx . recyclerview . widget . RecyclerView Ċ Ċ class ĠEnd less Scroll Listener ( ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġlayout Manager : ĠLinearLayoutManager , ĊĠĠĠĠĠĠĠ Ġprivate Ġval ĠonLoad More Listener : Ġ() Ġ-> ĠUnit Ċ ) Ġ: ĠRecyclerView . On Scroll Listener () Ġ{ ĊĊĠĠĠ Ġprivate Ġvar Ġprevious Total Ġ= Ġ 0 ĊĠĠĠ Ġprivate Ġvar Ġloading Ġ= Ġtrue ĊĊĠĠĠ Ġoverride Ġfun Ġon Sc rolled ( re cyclerView : ĠRecyclerView , Ġdx : ĠInt , Ġdy : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Sc rolled ( re cyclerView , Ġdx , Ġdy ) ĊĊĠĠĠĠĠĠĠ Ġval Ġvisible ItemCount Ġ= Ġre cyclerView . child Count ĊĠĠĠĠĠĠĠ Ġval Ġtotal ItemCount Ġ= Ġlayout Manager . item Count ĊĠĠĠĠĠĠĠ Ġval Ġfirst Visible Item Ġ= Ġlayout Manager . findFirst Visible Item Position () ĊĊĠĠĠĠĠĠĠ Ġif Ġ( total ItemCount Ġ< Ġprevious Total ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġ ãĥªãĤ¹ãĥĪ ãģ® è¦ģ ç´ł ãģĮ ãĤ¯ãĥª ãĤ¢ ãģķãĤĮãģŁ åł´åĲĪ ãĢģ ãģĵ ãģĵ ãģ§ åĪĿ æľŁ åĮĸ ãģķ ãģĽ ãĤĭ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprevious Total Ġ= Ġ 0 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġloading Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġif Ġ( loading . not () Ġand Ġ( total ItemCount Ġ- Ġvisible ItemCount Ġ<= Ġfirst Visible Item Ġ+ ĠVIS IBLE _ THRESHOLD )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠonLoad More Listener . invoke () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġloading Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġif Ġ( loading Ġand Ġ( total ItemCount Ġ> Ġprevious Total )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġloading Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprevious Total Ġ= Ġtotal ItemCount ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠVIS IBLE _ THRESHOLD Ġ= Ġ 5 ĊĠĠĠ Ġ} Ċ }