package Ġorg . step ik . android . view . base . ui . adapter . layout manager Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . util . Attribute Set Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroidx . recyclerview . widget . Grid LayoutManager Ċ import Ġandroidx . recyclerview . widget . Linear LayoutManager Ċ import Ġandroidx . recyclerview . widget . RecyclerView Ċ Ċ class ĠTable LayoutManager ( ĊĠĠĠ Ġcontext : ĠContext , ĊĠĠĠ Ġprivate Ġval Ġhorizontal Span Count : ĠInt , ĊĠĠĠ Ġprivate Ġval Ġvertical Span Count : ĠInt , ĊĠĠĠ Ġ@ RecyclerView . Orientation ĊĠĠĠ Ġorientation : ĠInt , ĊĠĠĠ Ġreverse Layout : ĠBoolean Ċ ) Ġ: ĠGrid LayoutManager ( context , Ġif Ġ( orientation Ġ== ĠLinearLayoutManager . VERTICAL ) Ġhorizontal Span Count Ġelse Ġvertical Span Count , Ġorientation , Ġreverse Layout ) Ġ{ ĊĠĠĠ Ġoverride Ġfun Ġgenerate Default LayoutParams (): ĠRecyclerView . LayoutParams Ġ= ĊĠĠĠĠĠĠĠ Ġcreate LayoutParams ( super . generate Default LayoutParams ()) ĊĊĠĠĠ Ġoverride Ġfun Ġgenerate LayoutParams ( lp : ĠViewGroup . LayoutParams ): ĠRecyclerView . LayoutParams Ġ= ĊĠĠĠĠĠĠĠ Ġcreate LayoutParams ( super . generate LayoutParams ( lp )) ĊĊĠĠĠ Ġoverride Ġfun Ġgenerate LayoutParams ( c : ĠContext ?, Ġattrs : ĠAttributeSet ?): ĠRecyclerView . LayoutParams Ġ= ĊĠĠĠĠĠĠĠ Ġcreate LayoutParams ( super . generate LayoutParams ( c , Ġattrs )) ĊĊĠĠĠ Ġprivate Ġfun Ġcreate LayoutParams ( lp : ĠRecyclerView . LayoutParams ): ĠRecyclerView . LayoutParams Ġ= ĊĠĠĠĠĠĠĠ Ġlp . also Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( orientation Ġ== ĠLinearLayoutManager . VERTICAL ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . height Ġ= Ġ( height Ġ- Ġpadding Top Ġ- Ġpadding Bottom ) Ġ/ Ġvertical Span Count Ġ- Ġlp . top Margin Ġ- Ġlp . bottom Margin ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . width Ġ= Ġ( width Ġ- Ġpadding Start Ġ- Ġpadding End ) Ġ/ Ġhorizontal Span Count Ġ- Ġlp . left Margin Ġ- Ġlp . right Margin ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} Ċ } Ċ