package Ġcom . m ichael fl is ar . dialogs . utils Ċ Ċ import Ġandroidx . recyclerview . widget . RecyclerView Ċ import Ġandroidx . recyclerview . widget . Linear LayoutManager Ċ import Ġandroidx . recyclerview . widget . Grid LayoutManager ĊĊĊ Ċ object ĠRecyclerView Util Ġ{ ĊĠĠĠ Ġfun Ġfind First Visible Item Position ( rv : ĠRecyclerView ): ĠInt ? Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( rv . layout Manager Ġis ĠGrid LayoutManager ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġ( rv . layout Manager Ġas ĠGrid LayoutManager ). findFirst Visible Item Position () ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( rv . layout Manager Ġis ĠLinearLayoutManager ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġ( rv . layout Manager Ġas ĠLinearLayoutManager ). findFirst Visible Item Position () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġnull ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġfind Last Visible Item Position ( rv : ĠRecyclerView ): ĠInt ? Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( rv . layout Manager Ġis ĠGrid LayoutManager ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġ( rv . layout Manager Ġas ĠGrid LayoutManager ). find Last Visible Item Position () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( rv . layout Manager Ġis ĠLinearLayoutManager ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ( rv . layout Manager Ġas ĠLinearLayoutManager ). find Last Visible Item Position () ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġnull ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġfind First Comp let ely Visible Item Position ( rv : ĠRecyclerView ): ĠInt ? Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( rv . layout Manager Ġis ĠGrid LayoutManager ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġ( rv . layout Manager Ġas ĠGrid LayoutManager ). findFirst Comp let ely Visible Item Position () ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( rv . layout Manager Ġis ĠLinearLayoutManager ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġ( rv . layout Manager Ġas ĠLinearLayoutManager ). findFirst Comp let ely Visible Item Position () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġnull ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġis View Visible ( rv : ĠRecyclerView , Ġindex : ĠInt ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġfirst Visible Ġ= Ġfind First Visible Item Position ( rv ) !! ĊĠĠĠĠĠĠĠ Ġval Ġlast Visible Ġ= Ġfind Last Visible Item Position ( rv ) !! ĊĠĠĠĠĠĠĠ Ġreturn Ġfirst Visible Ġ<= Ġindex Ġ&& Ġlast Visible Ġ>= Ġindex ĊĠĠĠ Ġ} Ċ }