package Ġcom . s ah u . grid configuration Ċ Ċ import Ġandroidx . compose . runtime . Composable Ċ import Ġandroidx . compose . runtime . composition Local Of Ċ import Ġandroidx . compose . runtime . never Equal Policy Ċ import Ġandroidx . compose . runtime . remember Ċ import Ġandroidx . compose . ui . unit . Dp Ċ Ċ /** Ċ Ġ* ĠGrid ĠConfiguration Ġis Ġthe Ġsystem Ġthat Ġthe Ġscreen Ġis Ġdivided Ġinto Ġmultiple Ġcolumns . Ċ Ġ* Ċ Ġ* Ġ![ Responsive ĠGrid ĠLayout ]( https :// material . io / design / layout / responsive - layout - grid . html # columns - gutter s - and - margin s ) Ċ Ġ* Ċ Ġ* Ġ@ param Ġlayout Width Ġis Ġthe Ġwidth Ġof Ġthe Ġlayout Ġin Ġ[ Dp ] Ġthat Ġthe Ġlayout Ġis Ġgetting Ċ Ġ* Ġrendered . Ċ Ġ* Ġ@ param Ġcolumn Width Ġis Ġthe Ġwidth Ġof Ġthe Ġsingle Ġcolumn Ġint Ġthe Ġgrid Ġsystem Ġin Ġ[ Dp ] Ċ Ġ* Ġ@ param Ġhorizontal Margin Ġis Ġthe Ġmargin Ġwithin Ġthe Ġlayout Ġthat Ġcan Ġbe Ġapplied Ġto Ċ Ġ* Ġthe Ġlayout Ġin Ġ[ Dp ]. Ċ Ġ* Ġ@ param Ġg utter Width Ġis Ġthe Ġwidth / space Ġin Ġbetween Ġthe Ġcolumns , Ġwhich Ġcan Ġbe Ġact Ċ Ġ* Ġas Ġspacing Ġfor Ġthe Ġitems Ġ( if Ġthere Ġwere Ġmultiple Ġitems Ġto Ġshow ) Ġin Ġ[ Dp ]. Ċ Ġ* Ġ@ param Ġtotal Columns Ġis Ġthe Ġcount Ġof Ġcolumns Ġthat Ġthe Ġlayout Ġis Ġhaving Ġin Ġit . Ċ Ġ* Ċ Ġ* Ġ@ author ĠS ahr ud ay Ġ( SA HU ) Ċ Ġ* Ċ Ġ* Ġ** int Ġa , Ġb Ġ= Ġ 8 3 , Ġ 7 4 ** Ċ Ġ*/ Ċ data Ġclass ĠGrid Configuration ( ĊĠĠĠ Ġval Ġlayout Width : ĠD p , ĊĠĠĠ Ġval Ġcolumn Width : ĠD p , ĊĠĠĠ Ġval Ġhorizontal Margin : ĠD p , ĊĠĠĠ Ġval Ġg utter Width : ĠD p , ĊĠĠĠ Ġval Ġtotal Columns : ĠInt , Ċ ) Ċ Ċ /** Ċ Ġ* ĠCustom is able Ġgrid Ġsystem Ġto Ġconfigure Ġif Ġrequired Ġfor Ġthe Ġsub - layout Ġwhich Ġalso Ċ Ġ* Ġfollows Ġthe Ġgrid Ġsystem . Ċ Ġ* Ċ Ġ* Ġ@ param Ġlayout Width Ġis Ġthe Ġwidth Ġof Ġthe Ġlayout Ġthat Ġgoing Ġto Ġhave Ġthis Ġsystem . Ċ Ġ* Ġ@ param Ġhorizontal Margin Ġis Ġthe Ġmargin Ġon Ġboth Ġends Ġ( Start Ġand ĠEnd ) Ġfor Ġthe Ġlayout Ġto Ċ Ġ* Ġfollow . Ċ Ġ* Ġ@ param Ġg utter Width Ġis Ġthe Ġwidth Ġthat Ġthe Ġlayout Ġhas Ġto Ġfollow Ġfor Ġspacing . Ċ Ġ* Ġ@ param Ġtotal Columns Ġis Ġthe Ġcolumns Ġthat Ġthe Ġlayout Ġis Ġhaving Ġin Ġit . Ċ Ġ* Ċ Ġ* Ġ@ author ĠS ahr ud ay Ġ( SA HU ) Ċ Ġ* Ċ Ġ* Ġ** int Ġa , Ġb Ġ= Ġ 8 3 , Ġ 7 4 ** Ċ Ġ*/ Ċ @ Composable Ċ fun Ġremember Grid Configuration ( ĊĠĠĠ Ġlayout Width : ĠD p , ĊĠĠĠ Ġhorizontal Margin : ĠD p , ĊĠĠĠ Ġg utter Width : ĠD p , ĊĠĠĠ Ġtotal Columns : ĠInt , Ċ ) Ġ= Ġremember Ġ{ ĊĠĠĠ Ġgrid Configuration ( ĊĠĠĠĠĠĠĠ Ġlayout Width , ĊĠĠĠĠĠĠĠ Ġhorizontal Margin , ĊĠĠĠĠĠĠĠ Ġg utter Width , ĊĠĠĠĠĠĠĠ Ġtotal Columns ĊĠĠĠ Ġ) Ċ } Ċ Ċ private Ġfun Ġgrid Configuration ( ĊĠĠĠ Ġwindow Width : ĠD p , ĊĠĠĠ Ġhorizontal Margin : ĠD p , ĊĠĠĠ Ġg utter Width : ĠD p , ĊĠĠĠ Ġtotal Columns : ĠInt , Ċ ): ĠGrid Configuration Ġ{ ĊĊĠĠĠ Ġval Ġcolumn Length Ġ= Ġ( window Width Ġ- Ġhorizontal Margin Ġ* Ġ 2 Ġ- Ġg utter Width Ġ* Ġ( total Columns Ġ- Ġ 1 )) Ġ/ Ġtotal Columns ĊĊĠĠĠ Ġreturn ĠGrid Configuration ( ĊĠĠĠĠĠĠĠ Ġlayout Width Ġ= Ġwindow Width , ĊĠĠĠĠĠĠĠ Ġcolumn Width Ġ= Ġcolumn Length , ĊĠĠĠĠĠĠĠ Ġhorizontal Margin Ġ= Ġhorizontal Margin , ĊĠĠĠĠĠĠĠ Ġg utter Width Ġ= Ġg utter Width , ĊĠĠĠĠĠĠĠ Ġtotal Columns Ġ= Ġtotal Columns ĊĠĠĠ Ġ) Ċ } Ċ Ċ val ĠLocal Grid Configuration Ġ= Ġcomposition Local Of < Grid Configuration >( ĊĠĠĠ Ġnever Equal Policy () Ċ ) Ġ{ Ġerror (" Local ĠGrid ĠConfiguration Ġnot Ġpresent ") Ġ} Ċ