package Ġcom . top view . pure joy . home . discover . decoration Ċ Ċ import Ġandroid . graphics . Rect Ċ import Ġandroid . view . View Ċ import Ġandroidx . recyclerview . widget . Grid LayoutManager Ċ import Ġandroidx . recyclerview . widget . RecyclerView Ċ import Ġcom . top view . pure joy . home . R Ċ import Ġcom . top view . pure joy . home . discover . adapter . Recommend New Song Adapter Ċ Ċ class ĠRecommend New Song Decoration Ġ: ĠRecyclerView . Item Decoration () Ġ{ ĊĊĠĠĠ Ġoverride Ġfun ĠgetItem Offsets ( ĊĠĠĠĠĠĠĠ Ġout Rect : ĠRect , ĊĠĠĠĠĠĠĠ Ġview : ĠView , ĊĠĠĠĠĠĠĠ Ġparent : ĠRecyclerView , ĊĠĠĠĠĠĠĠ Ġstate : ĠRecyclerView . State ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . getItem Offsets ( out Rect , Ġview , Ġparent , Ġstate ) ĊĊĠĠĠĠĠĠĠ Ġ// Ġèİ·åıĸ Adapter ĊĠĠĠĠĠĠĠ Ġval Ġadapter : ĠRecommend New Song Adapter Ġ= Ġparent . adapter Ġas ĠRecommend New Song Adapter ĊĠĠĠĠĠĠĠ Ġ// Ġèİ·åıĸ LayoutManager ĊĠĠĠĠĠĠĠ Ġval Ġlayout Manager : ĠGrid LayoutManager Ġ= Ġparent . layout Manager Ġas ĠGrid LayoutManager ĊĠĠĠĠĠĠĠ Ġ// Ġèİ·åıĸ Item çļĦ æķ°éĩı ĊĠĠĠĠĠĠĠ Ġval Ġitem Counts Ġ= Ġadapter . item Count ĊĠĠĠĠĠĠĠ Ġ// Ġèİ·åıĸ è¡Į æķ° ĊĠĠĠĠĠĠĠ Ġval Ġrow Ġ= Ġlayout Manager . span Count ĊĠĠĠĠĠĠĠ Ġ// Ġ è®¡ç®Ĺ æľĢåĲİ ä¸Ģ åĪĹ çļĦ åŃĲ View çļĦ æķ°éĩı ĊĠĠĠĠĠĠĠ Ġvar Ġlast Column Count Ġ= Ġitem Counts Ġ% Ġrow ĊĠĠĠĠĠĠĠ Ġif Ġ( last Column Count Ġ== Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlast Column Count Ġ= Ġrow ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ// Ġèİ·åıĸ åŃĲ View åľ¨ Adapter ä¸ŃçļĦ ä½įç½® ĊĠĠĠĠĠĠĠ Ġval Ġposition Ġ= Ġparent . getChild Adapter Position ( view ) ĊĊĠĠĠĠĠĠĠ Ġ// Ġ è°ĥæķ´ æ°´ å¹³ éĹ´ è·Ŀ ĊĠĠĠĠĠĠĠ Ġ// Ġ ä¸įæĺ¯ æľĢåĲİ ä¸Ģ åĪĹ ĊĠĠĠĠĠĠĠ Ġif Ġ( position Ġ< Ġitem Counts Ġ- Ġlast Column Count ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġout Rect . right Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġparent . context . resources ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. get Dimension ( R . dim en . home _ discover _ recommend _ new _ song _ item _ horizontal _ spacing ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. toInt () ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġ æľĢåĲİ ä¸Ģ åĪĹ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdiscover Padding Left Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġparent . context . resources . get Dimension ( R . dim en . common _ padding _ left ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdiscover Padding Right Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġparent . context . resources . get Dimension ( R . dim en . common _ padding _ right ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġitem Width Small er Than Screen Ġ= Ġparent . context . resources ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. get Dimension ( R . dim en . home _ discover _ recommend _ new _ song _ item _ width _ smaller _ than _ screen ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġout Rect . right Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ( item Width Small er Than Screen Ġ- Ġdiscover Padding Left Ġ- Ġdiscover Padding Right ). toInt () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ// Ġ è°ĥæķ´ çº µ åĲĳ éĹ´ è·Ŀ ĊĠĠĠĠĠĠĠ Ġ// Ġ èĭ¥ Item æīĢåľ¨ ä½įç½® ä¸įæĺ¯ æľĢåĲİ ä¸Ģ è¡Į ĊĠĠĠĠĠĠĠ Ġif Ġ( position Ġ% Ġrow Ġ!= Ġrow Ġ- Ġ 1 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġvertical Spacing Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġparent . context . resources . get Dimension ( R . dim en . home _ discover _ recommend _ new _ song _ vertical _ spacing ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġout Rect . bottom Ġ= Ġvertical Spacing . toInt () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }