package Ġcom . lb . fast _ sc roller _ and _ recycler _ view _ fixes _ library Ċ Ċ import Ġandroid . graphics . Rect Ċ import Ġandroid . view . View Ċ import Ġandroidx . recyclerview . widget . RecyclerView Ċ import Ġandroidx . recyclerview . widget . RecyclerView . Item Decoration Ċ Ċ // https :// android x . de / android x / car / widget / item decorators / Bottom Offset Decoration . html Ċ class ĠBottom Offset Decoration ( private Ġval Ġm Bottom Offset : ĠInt , Ġprivate Ġval Ġlayout Manager Type : ĠLayout Manager Type ) Ġ: ĠItem Decoration () Ġ{ ĊĠĠĠ Ġenum Ġclass ĠLayout Manager Type Ġ{ ĊĠĠĠĠĠĠĠ ĠGR ID _ LAYOUT _ MANAGER , ĠLINE AR _ LAYOUT _ MANAGER ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠgetItem Offsets ( out Rect : ĠRect , Ġview : ĠView , Ġparent : ĠRecyclerView , Ġstate : ĠRecyclerView . State ) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . getItem Offsets ( out Rect , Ġview , Ġparent , Ġstate ) ĊĠĠĠĠĠĠĠ Ġwhen Ġ( layout Manager Type ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLayout Manager Type . LINEAR _ LAYOUT _ MANAGER Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġposition Ġ= Ġparent . getChild Adapter Position ( view ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġout Rect . bottom Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( state . item Count Ġ<= Ġ 0 Ġ|| Ġposition Ġ!= Ġstate . item Count Ġ- Ġ 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 0 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Bottom Offset ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLayout Manager Type . GRID _ LAYOUT _ MANAGER Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġadapter Ġ= Ġparent . adapter ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġout Rect . bottom Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( adapter Ġ== Ġnull Ġ|| Ġadapter . item Count Ġ== Ġ 0 Ġ|| Ġ! Grid LayoutManager Utils . is On Last Row ( view , Ġparent )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 0 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Bottom Offset ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } ĊĊ