• Regular formula 18 – type 1: straight huanglong
  • Regular 18 – Type 2: control crane to capture the dragon
  • Regular formula 18 – Formula 3: The dragon jumps in the deep
  • Regular formula 18 – Type 4 ash

The Flutter army arrives, while the Container commander leads the character army.

class Container extends StatelessWidget {
  /// Creates a widget that combines common painting, positioning, and sizing widgets.
  ///
  /// The `height` and `width` values include the padding.
  ///
  /// The `color` argument is a shorthand for `decoration: new
  /// BoxDecoration(color: color)`, which means you cannot supply both a `color`
  /// and a `decoration` argument. If you want to have both a `color` and a
  /// `decoration`, you can pass the color as the `color` argument to the
  /// `BoxDecoration`.
  Container({
    Key key,
    this.alignment,
    this.padding,
    Color color,
    Decoration decoration,
    this.foregroundDecoration,
    double width,
    double height,
    BoxConstraints constraints,
    this.margin,
    this.transform,
    this.child,
  }) : assert(margin == null || margin.isNonNegative),
       assert(padding == null || padding.isNonNegative),
       assert(decoration == null || decoration.debugAssertIsValid()),
       assert(constraints == null || constraints.debugAssertIsValid()),
       assert(color == null || decoration == null,
         'Cannot provide both a color and a decoration\n'
         'The color argument is just a shorthand for "decoration: new BoxDecoration(color: color)".'), decoration = decoration ?? (color ! = null ? BoxDecoration(color: color) : null), constraints = (width ! = null || height ! = null) ? constraints? .tighten(width: width, height: height) ?? BoxConstraints.tightFor(width: width, height: height) : constraints, super(key: key); /// The [child] contained by the container. /// /// If null, andif the [constraints] are unbounded or also null, the
  /// container will expand to fill all available space in its parent, unless
  /// the parent provides unbounded constraints, in which case the container
  /// will attempt to be as small as possible.
  ///
  /// {@macro flutter.widgets.child}
  final Widget child;

  /// Align the [child] within the container.
  ///
  /// If non-null, the container will expand to fill its parent and position its
  /// child within itself according to the given value. If the incoming
  /// constraints are unbounded, then the child will be shrink-wrapped instead.
  ///
  /// Ignored if [child] is null.
  ///
  /// See also:
  ///
  ///  * [Alignment], a class with convenient constants typically used to
  ///    specify an [AlignmentGeometry].
  ///  * [AlignmentDirectional], like [Alignment] for specifying alignments
  ///    relative to text direction.
  final AlignmentGeometry alignment;

  /// Empty space to inscribe inside the [decoration]. The [child], if any, is
  /// placed inside this padding.
  ///
  /// This padding is in addition to any padding inherent in the [decoration];
  /// see [Decoration.padding].
  final EdgeInsetsGeometry padding;

  /// The decoration to paint behind the [child].
  ///
  /// A shorthand for specifying just a solid color is available in the
  /// constructor: set the `color` argument instead of the `decoration`
  /// argument.
  ///
  /// The [child] is not clipped to the decoration. To clip a child to the shape
  /// of a particular [ShapeDecoration], consider using a [ClipPath] widget.
  final Decoration decoration;

  /// The decoration to paint in front of the [child].
  final Decoration foregroundDecoration;

  /// Additional constraints to apply to the child.
  ///
  /// The constructor `width` and `height` arguments are combined with the
  /// `constraints` argument to set this property.
  ///
  /// The [padding] goes inside the constraints.
  final BoxConstraints constraints;

  /// Empty space to surround the [decoration] and [child].
  final EdgeInsetsGeometry margin;

  /// The transformation matrix to apply before painting the container.
  final Matrix4 transform;


Copy the code

Container announces itself: “I am the warrior of the Widget family. Container, fan. Jett marched to the battle and said, What ho, my master’s name is too filthy for you. Move is a move dragon jump in the deep, surrounded the opponent, is rising when the dragon. Container smiles: This is not bad, but the heat is not good enough. The trick was broken at the first try.

Hide fan fairy out, BGM, to the heart of the heart: Son, for the teacher now deep spirit spider poison, strength is not, the fourth type can only use 80% of the power, and can only be used once. How much you can learn depends on your fate. See temple front, hide fan fairy body hair blue light, na heaven and earth reiki, luck at the palm, a time flying sand and wandering stone, ah way: regular 18 type, the fourth type – bone… The container was smashed to pieces, leaving behind a pile of debris.

Widget---child
AlignmentGeometry---alignment
EdgeInsetsGeometry---padding
Decoration---decoration
Decoration---foregroundDecoration
BoxConstraints---constraints
EdgeInsetsGeometry---margin
Matrix4---transform
Copy the code

Hidden fan fairy:… Jan gray.

attribute Attribute types
foregroundDecoration Decoration
padding EdgeInsetsGeometry
margin EdgeInsetsGeometry
transform Matrix4
alignment AlignmentGeometry
decoration Decoration
constraints BoxConstraints
child Widget

Gas strength reflow, fan fairy a vomit red, lie down on the ground. Jet: How do you feel, Master? Hidden fan fairy: no harm, this type, how do you see? Jet: That’s very impressive, but to tell you the truth… Just now the wind is strong, the sand lost my eyes, DID not see.” At this time the distance gradually Text banner, hidden fan xian: alas, god’s will, god’s will, now the pursuit has come, my life rest. Jet: master, don’t be discouraged. From this wreck, your spirit is still alive. I can see something of it. You separate the attributes from the types in the Container

private static void regexWidget(String target) {
    Map<String,String> fieldMap= new HashMap();
    String regex="final (? 
      
       \\w*) (? 
       
        \\w*);"
       
      ;
    Pattern pattern = Pattern.compile(regex);
    Matcher matcher = pattern.matcher(target);
    while (matcher.find()){
        fieldMap.put(matcher.group("name"),matcher.group("type"));
    }
    createTable(fieldMap);
}
Copy the code

The pieces of the division are then reassembled into markdowon’s string

private static void createTable(Map<String,String> fieldMap) {
    String title="| attribute types \ n";
    String syb="---|---\n";
  StringBuilder sb=  new StringBuilder(title);
  sb.append(syb);
    fieldMap.forEach((k,v)->{
        sb.append(k).append("|").append(v).append("\n");
    });
    System.out.println(sb.toString());
}
Copy the code

Zang fan fairy: “It is not bad, this is a setback, a raise. We can reconstruct them by extracting useful information.

-- - | | attribute type - foregroundDecoration | Decoration padding | EdgeInsetsGeometry margin | EdgeInsetsGeometry transform | Matrix4  alignment|AlignmentGeometry decoration|Decoration constraints|BoxConstraints child|WidgetCopy the code

Text came, sent TextStyle general, Jet to fight, then a move of frustration

attribute Attribute types
textBaseline TextBaseline
backgroundColor Color
decorationStyle TextDecorationStyle
color Color
wordSpacing double
decorationThickness double
letterSpacing double
foreground Paint
fontStyle FontStyle
locale Locale
decorationColor Color
fontFamily String
_package String
background Paint
inherit bool
fontSize double
debugLabel String
decoration TextDecoration
fontWeight FontWeight
height double

Text in, Jet in, a bit of frustration

attribute Attribute types
softWrap bool
data String
textAlign TextAlign
semanticsLabel String
textWidthBasis TextWidthBasis
locale Locale
textDirection TextDirection
textScaleFactor double
overflow TextOverflow
strutStyle StrutStyle
maxLines int
textSpan InlineSpan
style TextStyle

Jet: Master, I think I've figured it out. Can I attack the Widgets home base and kill them? Look at this, the fire is not good, the residue is not very pure, you are far from it. Jet: What about type five? Learn form 5 - Get in and get out 7 times. You can go to the SDK of Flutter to find the Widgets base, cycle through the files, and destroy them all at once.Copy the code

Afterword.

1—- this article by Zhang Fengjieteilie original, reprint please specify 2—- if there is anything you want to exchange, welcome to leave a message. Also can add wechat :zdl1994328 3—- personal ability is limited, if there is not right welcome everyone to criticize the evidence, must be modestly correct 4—- see here, I here thank you for your love and support, scan code concern – the king of programming