avoid-wrapping-in-padding

Group
Style
Path
lint/style/avoid-wrapping-in-padding
Default
Off, opt in
Origin
Falcon
Domain
flutter
Rule
189 of 512
flutter

Flags Padding directly wrapping a Flutter Container that can own the padding. Containers with existing padding, margin, alignment, sizing, constraints, transforms, color, decoration or foregroundDecoration are excluded: moving padding across those layout and paint stages can change the result. Non-null keys on either widget are excluded because the keyed element's bounds change. This is distinct from prefer-padding-over-container and prefer-container's three-widget layout sequence.

Invalid

example.dartdart
import 'package:flutter/widgets.dart';
import 'package:flutter/widgets.dart' as f;
typedef P = Padding;
void callback() {}
void examples(Widget child, dynamic image, dynamic color, double size, String label) {
  Padding(padding: 1, child: Container(child: child));
  Padding(padding: 2, child: Container(key: null, child: child));
  new Padding(padding: 3, child: Container());
  f.Padding(padding: 4, child: f.Container(child: child));
  P(padding: 5, child: Container(child: child));
  Padding(key: null, padding: 1, child: Container(child: child));
  Padding(key: (null), padding: 1, child: Container(key: (null), child: child));
}
Move this padding into the child `Container` instead of wrapping it in `Padding`.
5void examples(Widget child, dynamic image, dynamic color, double size, String label) {
6 Padding(padding: 1, child: Container(child: child));
Move this padding into the child `Container` instead of wrapping it in `Padding`.
6 Padding(padding: 1, child: Container(child: child));
7 Padding(padding: 2, child: Container(key: null, child: child));
Move this padding into the child `Container` instead of wrapping it in `Padding`.
7 Padding(padding: 2, child: Container(key: null, child: child));
8 new Padding(padding: 3, child: Container());
Move this padding into the child `Container` instead of wrapping it in `Padding`.
8 new Padding(padding: 3, child: Container());
9 f.Padding(padding: 4, child: f.Container(child: child));
Move this padding into the child `Container` instead of wrapping it in `Padding`.
9 f.Padding(padding: 4, child: f.Container(child: child));
10 P(padding: 5, child: Container(child: child));
Move this padding into the child `Container` instead of wrapping it in `Padding`.
10 P(padding: 5, child: Container(child: child));
11 Padding(key: null, padding: 1, child: Container(child: child));
Move this padding into the child `Container` instead of wrapping it in `Padding`.
11 Padding(key: null, padding: 1, child: Container(child: child));
12 Padding(key: (null), padding: 1, child: Container(key: (null), child: child));

Valid

example.dartdart
import 'package:flutter/widgets.dart';
import 'package:flutter/widgets.dart' as f;
typedef P = Padding;
void callback() {}
void examples(Widget child, dynamic image, dynamic color, double size, String label) {
  Padding(padding: 1, child: SizedBox());
  Padding(padding: 1, child: Container(padding: 2));
  Padding(padding: 1, child: Container(width: 20));
  Padding(padding: 1, child: Container(margin: 2));
  Padding(padding: 1, child: Container(color: color));
  Padding(padding: 2, child: Container(key: image, child: child));
  Padding(key: image, padding: 1, child: Container(child: child));
  Padding(key: image, padding: 1, child: Container(key: color, child: child));
  Padding(key: null, padding: 1, child: Container(key: image, child: child));
  Padding(key: image, padding: 1, child: Container(key: null, child: child));
  f.Padding(key: image, padding: 1, child: f.Container(child: child));
  P(key: image, padding: 1, child: Container(child: child));
}

Configure avoid-wrapping-in-padding

Set its severity in falcon.json. See the configuration guide.

falcon.jsonjson
{
  "linter": {
    "rules": {
      "style": {
        "avoid-wrapping-in-padding": "error"
      }
    }
  }
}

Or silence one occurrence with a suppression comment; the reason is required.

example.dartdart
// falcon-ignore lint/style/avoid-wrapping-in-padding: <reason>