11import 'dart:collection' ;
22import 'dart:convert' ;
3+ import 'dart:math' ;
34import 'dart:ui' as ui;
45import 'dart:ui' ;
56
@@ -128,10 +129,26 @@ List<Widget> constraintGrid({
128129 return margin;
129130 }
130131
131- List <ConstraintId > childIds = [];
132+ List <ConstraintId > leftChildIds = [];
133+ List <ConstraintId > topChildIds = [];
134+ List <ConstraintId > rightChildIds = [];
135+ List <ConstraintId > bottomChildIds = [];
136+ int lastRowIndex = (itemCount / columnCount).ceil () - 1 ;
137+ int lastColumnIndex = min (columnCount - 1 , itemCount - 1 );
132138 for (int i = 0 ; i < itemCount; i++ ) {
133139 ConstraintId itemId = ConstraintId (id.id + '_grid_item_$i ' );
134- childIds.add (itemId);
140+ if (i % columnCount == 0 ) {
141+ leftChildIds.add (itemId);
142+ }
143+ if (i < columnCount) {
144+ topChildIds.add (itemId);
145+ }
146+ if (i % columnCount == lastColumnIndex) {
147+ rightChildIds.add (itemId);
148+ }
149+ if (i ~ / columnCount == lastRowIndex) {
150+ bottomChildIds.add (itemId);
151+ }
135152 Widget widget = itemBuilder (i);
136153 Size ? itemSize = itemSizeBuilder? .call (i);
137154 widgets.add (Constrained (
@@ -159,25 +176,25 @@ List<Widget> constraintGrid({
159176 Barrier leftBarrier = Barrier (
160177 id: ConstraintId (id.id + '_left_barrier' ),
161178 direction: BarrierDirection .left,
162- referencedIds: childIds ,
179+ referencedIds: leftChildIds ,
163180 );
164181
165182 Barrier topBarrier = Barrier (
166183 id: ConstraintId (id.id + '_top_barrier' ),
167184 direction: BarrierDirection .top,
168- referencedIds: childIds ,
185+ referencedIds: topChildIds ,
169186 );
170187
171188 Barrier rightBarrier = Barrier (
172189 id: ConstraintId (id.id + '_right_barrier' ),
173190 direction: BarrierDirection .right,
174- referencedIds: childIds ,
191+ referencedIds: rightChildIds ,
175192 );
176193
177194 Barrier bottomBarrier = Barrier (
178195 id: ConstraintId (id.id + '_bottom_barrier' ),
179196 direction: BarrierDirection .bottom,
180- referencedIds: childIds ,
197+ referencedIds: bottomChildIds ,
181198 );
182199
183200 widgets.add (leftBarrier);
@@ -196,7 +213,7 @@ List<Widget> constraintGrid({
196213 zIndex: - 1 ,
197214 translate: translate,
198215 translateConstraint: translateConstraint,
199- visibility: visibility ,
216+ visibility: invisible ,
200217 ));
201218
202219 return widgets;
0 commit comments