package Ġcom . start e am . dream . widget Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . graphics . Color Ċ import Ġandroid . graphics . drawable . Drawable Ċ import Ġandroid . util . Attribute Set Ċ import Ġandroidx . recyclerview . widget . Grid LayoutManager Ċ import Ġandroidx . recyclerview . widget . Linear LayoutManager Ċ import Ġandroidx . recyclerview . widget . RecyclerView Ċ import Ġandroidx . recyclerview . widget . St agger ed Grid LayoutManager Ċ import Ġcom . start e am . dream . R Ċ import Ġcom . start e am . dream . utils . UI Utils Ċ Ċ class ĠDiv ider RecyclerView Ġ: ĠRecyclerView Ġ{ ĊĊĠĠĠ Ġprivate Ġval ĠmContext : ĠContext ĊĊĠĠĠ Ġ// åĪĨ åī² çº¿ çļĦ é¢ľèī² ĊĠĠĠ Ġprivate Ġvar Ġm Divider Color : ĠInt ĊĠĠĠ Ġ// åĪĨ åī² çº¿ çļĦ å¤§å°ı ĊĠĠĠ Ġprivate Ġvar Ġm Divider Size Ġ= Ġ 1 ĊĠĠĠ Ġ// åĪĨ åī² çº¿ çļĦ drawable ĊĠĠĠ Ġprivate Ġvar Ġm Divider Drawable : ĠDrawable ? ĊĠĠĠ Ġ// æĺ¯åĲ¦ ä½¿çĶ¨ ç Ģ ĳ å¸ĥ æµģ å¸ĥå±Ģ , é»ĺè®¤ ä¸įæĺ¯ ĊĠĠĠ Ġprivate Ġvar Ġm Use St agger Layout : ĠBoolean Ġ= Ġfalse ĊĠĠĠ Ġ// åĪĹ æķ° ï¼Į é»ĺè®¤ä¸º 1 ĊĠĠĠ Ġprivate Ġvar Ġm Num Columns Ġ= Ġ 1 ĊĠĠĠ Ġ// RecyclerView çļĦ æĸ¹åĲĳ ï¼Į é»ĺè®¤ä¸º åŀ Ĥ çĽ´ æĸ¹åĲĳ ĊĠĠĠ Ġprivate Ġvar Ġm Orientation Ġ= ĠV ERT ICAL ĊĊĠĠĠ Ġprivate Ġvar Ġm Margin Left : ĠInt ĊĠĠĠ Ġprivate Ġvar Ġm Margin Right : ĠInt ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġm LayoutManager : ĠLayout Manager ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġm Divider Decoration : ĠDiv ider Decoration ĊĠĠĠ Ġprivate Ġvar Ġm Item Drawable : ĠDrawable ? Ġ= Ġnull ĊĊĠĠĠ Ġconstructor ( context : ĠContext ) Ġ: Ġthis ( context , Ġnull ) ĊĊĠĠĠ Ġconstructor ( context : ĠContext , Ġattribute Set : ĠAttributeSet ?) Ġ: Ġthis ( context , Ġattribute Set , Ġ 0 ) ĊĊĠĠĠ Ġconstructor ( context : ĠContext , Ġattribute Set : ĠAttributeSet ?, Ġdef Style : ĠInt ) Ġ: Ġsuper ( context , Ġattribute Set , Ġdef Style ) Ġ{ ĊĊĠĠĠĠĠĠĠ ĠmContext Ġ= Ġcontext ĊĊĠĠĠĠĠĠĠ Ġval Ġta Ġ= Ġcontext . obtain Styled Attributes ( attribute Set , ĠR . style able . Power ful RecyclerView ) ĊĊĠĠĠĠĠĠĠ Ġm Divider Color Ġ= Ġta . getColor ( R . style able . Power ful RecyclerView _ divider Color , ĠColor . parse Color ("# ffd 8 d 8 d 8 ")) ĊĠĠĠĠĠĠĠ Ġm Divider Size Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġta . get Dimension Pixel Size ( R . style able . Power ful RecyclerView _ divider Size , ĠUI Utils . dip 2 Px ( context , Ġ 1 )) ĊĊĠĠĠĠĠĠĠ Ġm Divider Drawable Ġ= Ġta . get Drawable ( R . style able . Power ful RecyclerView _ divider Drawable ) ĊĊĠĠĠĠĠĠĠ Ġm Use St agger Layout Ġ= Ġta . getBoolean ( R . style able . Power ful RecyclerView _ use St agger Layout , Ġm Use St agger Layout ) ĊĠĠĠĠĠĠĠ Ġm Num Columns Ġ= Ġta . getInt ( R . style able . Power ful RecyclerView _ num Columns , Ġm Num Columns ) ĊĊĠĠĠĠĠĠĠ Ġm Orientation Ġ= Ġta . getInt ( R . style able . Power ful RecyclerView _ rv Orientation , Ġm Orientation ) ĊĊĠĠĠĠĠĠĠ Ġm Margin Left Ġ= Ġta . get Dimension Pixel Size ( R . style able . Power ful RecyclerView _ divider Margin Left , Ġ 0 ) ĊĠĠĠĠĠĠĠ Ġm Margin Right Ġ= Ġta . get Dimension Pixel Size ( R . style able . Power ful RecyclerView _ divider Margin Right , Ġ 0 ) ĊĊĠĠĠĠĠĠĠ Ġta . recycle () ĊĊĠĠĠĠĠĠĠ Ġset LayoutManager () ĊĠĠĠĠĠĠĠ Ġset Divider () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġè®¾ç½® layout Manager ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġset LayoutManager () Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ(! m Use St agger Layout ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ä¸įæĺ¯ ç Ģ ĳ å¸ĥ æµģ å¸ĥå±Ģ ï¼Į åį³ æĺ¯ åĪĹè¡¨ æĪĸ ç½ĳ æł¼ å¸ĥå±Ģ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( m Orientation Ġ== ĠLinearLayoutManager . VERTICAL ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm LayoutManager Ġ= ĠGrid LayoutManager ( mContext , Ġm Num Columns ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm LayoutManager Ġ= ĠGrid LayoutManager ( mContext , Ġm Num Columns , Ġm Orientation , Ġfalse ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ç Ģ ĳ å¸ĥ æµģ å¸ĥå±Ģ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm LayoutManager Ġ= ĠSt agger ed Grid LayoutManager ( m Num Columns , Ġm Orientation ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġlayout Manager Ġ= Ġm LayoutManager ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġè®¾ç½® åĪĨ åī² çº¿ ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġset Divider () Ġ{ ĊĊĠĠĠĠĠĠĠ Ġif Ġ( m Divider Drawable Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ç»ĺ åĪ¶ é¢ľèī² åĪĨ åī² çº¿ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Divider Decoration Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠDiv ider Decoration ( mContext , Ġm Orientation , Ġm Divider Color , Ġm Divider Size , Ġm Margin Left , Ġm Margin Right ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Divider Drawable ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ç»ĺ åĪ¶ åĽ¾çīĩ åĪĨ åī² çº¿ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Divider Decoration Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠDiv ider Decoration ( mContext , Ġm Orientation , Ġit , Ġm Divider Size , Ġm Margin Left , Ġm Margin Right ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġthis . addItem Decoration ( m Divider Decoration ) ĊĠĠĠ Ġ} Ċ }