@@ -785,9 +785,29 @@ ConstraintId sId(int siblingIndexOffset) {
785
785
class _Align {
786
786
ConstraintId ? id;
787
787
_AlignType type;
788
+ double ? _margin;
789
+ double ? _goneMargin;
788
790
789
791
_Align (this .id, this .type);
790
792
793
+ _Align margin (double margin) {
794
+ if (_margin != null || _goneMargin != null ) {
795
+ _margin = margin;
796
+ return this ;
797
+ } else {
798
+ return _Align (id, type).._margin = margin;
799
+ }
800
+ }
801
+
802
+ _Align goneMargin (double goneMargin) {
803
+ if (_margin != null || _goneMargin != null ) {
804
+ _goneMargin = goneMargin;
805
+ return this ;
806
+ } else {
807
+ return _Align (id, type).._goneMargin = goneMargin;
808
+ }
809
+ }
810
+
791
811
@override
792
812
bool operator == (Object other) =>
793
813
identical (this , other) ||
@@ -836,8 +856,8 @@ class Constraint extends ConstraintDefine {
836
856
837
857
/// Both margin and goneMargin can be negative
838
858
final bool percentageMargin;
839
- final EdgeInsets margin;
840
- final EdgeInsets goneMargin;
859
+ EdgeInsets margin;
860
+ EdgeInsets goneMargin;
841
861
842
862
/// These are the base constraints constraint on sibling id or parent
843
863
/// The essence of constraints is alignment
@@ -1387,6 +1407,71 @@ class Constraint extends ConstraintDefine {
1387
1407
bottom = centerBottomRightTo! .bottom;
1388
1408
}
1389
1409
1410
+ if (left != null ) {
1411
+ if (left._margin != null ) {
1412
+ margin = margin.add (EdgeInsets .only (
1413
+ left: left._margin! ,
1414
+ )) as EdgeInsets ;
1415
+ }
1416
+ if (left._goneMargin != null ) {
1417
+ goneMargin = goneMargin.add (EdgeInsets .only (
1418
+ left: left._goneMargin! ,
1419
+ )) as EdgeInsets ;
1420
+ }
1421
+ }
1422
+
1423
+ if (top != null ) {
1424
+ if (top._margin != null ) {
1425
+ margin = margin.add (EdgeInsets .only (
1426
+ top: top._margin! ,
1427
+ )) as EdgeInsets ;
1428
+ }
1429
+ if (top._goneMargin != null ) {
1430
+ goneMargin = goneMargin.add (EdgeInsets .only (
1431
+ top: top._goneMargin! ,
1432
+ )) as EdgeInsets ;
1433
+ }
1434
+ }
1435
+
1436
+ if (right != null ) {
1437
+ if (right._margin != null ) {
1438
+ margin = margin.add (EdgeInsets .only (
1439
+ right: right._margin! ,
1440
+ )) as EdgeInsets ;
1441
+ }
1442
+ if (right._goneMargin != null ) {
1443
+ goneMargin = goneMargin.add (EdgeInsets .only (
1444
+ right: right._goneMargin! ,
1445
+ )) as EdgeInsets ;
1446
+ }
1447
+ }
1448
+
1449
+ if (bottom != null ) {
1450
+ if (bottom._margin != null ) {
1451
+ margin = margin.add (EdgeInsets .only (
1452
+ bottom: bottom._margin! ,
1453
+ )) as EdgeInsets ;
1454
+ }
1455
+ if (bottom._goneMargin != null ) {
1456
+ goneMargin = goneMargin.add (EdgeInsets .only (
1457
+ bottom: bottom._goneMargin! ,
1458
+ )) as EdgeInsets ;
1459
+ }
1460
+ }
1461
+
1462
+ if (baseline != null ) {
1463
+ if (baseline._margin != null ) {
1464
+ margin = margin.add (EdgeInsets .only (
1465
+ bottom: baseline._margin! ,
1466
+ )) as EdgeInsets ;
1467
+ }
1468
+ if (baseline._goneMargin != null ) {
1469
+ goneMargin = goneMargin.add (EdgeInsets .only (
1470
+ bottom: baseline._goneMargin! ,
1471
+ )) as EdgeInsets ;
1472
+ }
1473
+ }
1474
+
1390
1475
/// Convert wrapper constraints finish
1391
1476
1392
1477
/// Constraint priority: matchParent > wrapper constraints > base constraints
0 commit comments