package Ġcom . co git ator . d ynam ik grid view _ sample Ċ Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġcom . co git ator . d ynam ik grid view . D ynam ik Fragment Ċ import Ġcom . co git ator . d ynam ik grid view . D ynam ik Item Animator Ċ import Ġcom . co git ator . d ynam ik grid view . D ynam ik LayoutManager Ċ import Ġkotlinx . android . synt hetic . main . fragment _ sample .* Ċ import Ġjava . util .* Ċ import Ġkotlin . collections . ArrayList ĊĊ Ċ /** Ċ Ġ* Ġ@ author ĠAn kit ĠK umar Ġ( ank it d roid developer @ gmail . com ) Ġon Ġ 2 8 / 0 5 / 2 0 1 8 Ġ( MM / DD / YYYY ) Ċ Ġ*/ Ċ class ĠSample Fragment Ġ: ĠD ynam ik Fragment () Ġ{ ĊĊĠĠĠ Ġprivate Ġvar Ġm String Data : ĠMutable List < String > Ġ= ĠArrayList () ĊĠĠĠ Ġprivate Ġvar Ġwidth Nums : ĠMutable List < Int > Ġ= ĠArrayList () ĊĠĠĠ Ġprivate Ġvar Ġheight Nums : ĠMutable List < Int > Ġ= ĠArrayList () ĊĠĠĠ Ġprivate Ġvar Ġm Adapter : ĠSample Adapter ? Ġ= Ġnull ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate View ( in flater : ĠLayoutInflater , Ġcontainer : ĠViewGroup ?, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠsavedInstanceState : ĠBundle ?): ĠView ? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġinflater . inflate ( R . layout . fragment _ sample , Ġcontainer , Ġfalse ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon View Created ( view : ĠView , ĠsavedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on View Created ( view , ĠsavedInstanceState ) ĊĠĠĠĠĠĠĠ Ġval Ġlayout Manager Ġ= ĠD ynam ik LayoutManager ( 4 ) ĊĠĠĠĠĠĠĠ Ġir regular _ grid view ?. layout Manager Ġ= Ġlayout Manager ĊĊĠĠĠĠĠĠĠ Ġm Adapter Ġ= ĠSample Adapter ( context !! , Ġir regular _ grid view !! , Ġm String Data , Ġwidth Nums , Ġheight Nums ) ĊĠĠĠĠĠĠĠ Ġir regular _ grid view ?. adapter Ġ= Ġm Adapter ĊĠĠĠĠĠĠĠ Ġval Ġanim ator Ġ= ĠD ynam ik Item Animator () ĊĠĠĠĠĠĠĠ Ġir regular _ grid view ?. item Animator Ġ= Ġanim ator ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġinit Data () Ġ{ ĊĠĠĠĠĠĠĠ Ġm String Data Ġ= ĠArrayList () ĊĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin Ġ 0 .. 9 9 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm String Data . add ("" Ġ+ Ġi ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġr Ġ= ĠRandom () ĊĠĠĠĠĠĠĠ Ġwidth Nums Ġ= ĠArrayList () ĊĠĠĠĠĠĠĠ Ġheight Nums Ġ= ĠArrayList () ĊĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin Ġ 0 Ġuntil Ġm String Data . size ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġwidth Num : ĠInt ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġheight Num : ĠInt ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġnext Int Ġ= Ġr . nextInt ( 1 0 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnext Int Ġ> Ġ 8 0 Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwidth Num Ġ= Ġ 2 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġheight Num Ġ= Ġ 2 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnext Int Ġ> Ġ 6 0 Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwidth Num Ġ= Ġ 2 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġheight Num Ġ= Ġ 1 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnext Int Ġ> Ġ 4 0 Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwidth Num Ġ= Ġ 1 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġheight Num Ġ= Ġ 2 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwidth Num Ġ= Ġ 1 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġheight Num Ġ= Ġ 1 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwidth Nums . add ( width Num ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġheight Nums . add ( height Num ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġdelete Selected Items () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġlist Ġ= Ġm Adapter ?. getSelected Items () ĊĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin Ġlist ?. size !! Ġ- Ġ 1 Ġdown To Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġindex Ġ= Ġlist [ i ] ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm String Data . remove At ( index ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwidth Nums . remove ( index ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġheight Nums . remove ( index ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Adapter ?. notify Item Removed ( index ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġreset Selected Items () Ġ{ ĊĠĠĠĠĠĠĠ Ġm Adapter ?. reset Selected Items () ĊĠĠĠ Ġ} Ċ Ċ }