Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Sign in
Toggle navigation
F
Front-End
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
abdullh.alsoleman
Front-End
Commits
9b5d1fbe
Commit
9b5d1fbe
authored
Apr 06, 2017
by
Ian Hickson
Committed by
GitHub
Apr 06, 2017
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Provide more widget const constructors. (#9247)
Still many more to go.
parent
93b90362
Changes
4
Show whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
161 additions
and
195 deletions
+161
-195
fractional_offset.dart
packages/flutter/lib/src/painting/fractional_offset.dart
+3
-1
banner.dart
packages/flutter/lib/src/widgets/banner.dart
+7
-8
basic.dart
packages/flutter/lib/src/widgets/basic.dart
+148
-183
framework.dart
packages/flutter/lib/src/widgets/framework.dart
+3
-3
No files found.
packages/flutter/lib/src/painting/fractional_offset.dart
View file @
9b5d1fbe
...
...
@@ -14,7 +14,9 @@ class FractionalOffset {
/// Creates a fractional offset.
///
/// The [dx] and [dy] arguments must not be null.
const
FractionalOffset
(
this
.
dx
,
this
.
dy
);
const
FractionalOffset
(
this
.
dx
,
this
.
dy
)
:
assert
(
dx
!=
null
),
assert
(
dy
!=
null
);
/// The distance fraction in the horizontal direction.
///
...
...
packages/flutter/lib/src/widgets/banner.dart
View file @
9b5d1fbe
...
...
@@ -167,19 +167,18 @@ class Banner extends StatelessWidget {
/// Creates a banner.
///
/// The [message] and [location] arguments must not be null.
Banner
({
const
Banner
({
Key
key
,
this
.
child
,
@required
this
.
message
,
@required
this
.
location
,
this
.
color
:
_kColor
,
this
.
textStyle
:
_kTextStyle
,
})
:
super
(
key:
key
)
{
assert
(
message
!=
null
);
assert
(
location
!=
null
);
assert
(
color
!=
null
);
assert
(
textStyle
!=
null
);
}
})
:
assert
(
message
!=
null
),
assert
(
location
!=
null
),
assert
(
color
!=
null
),
assert
(
textStyle
!=
null
),
super
(
key:
key
);
/// The widget to show behind the banner.
final
Widget
child
;
...
...
@@ -215,7 +214,7 @@ class Banner extends StatelessWidget {
/// Does nothing in release mode.
class
CheckedModeBanner
extends
StatelessWidget
{
/// Creates a checked mode banner.
CheckedModeBanner
({
const
CheckedModeBanner
({
Key
key
,
@required
this
.
child
})
:
super
(
key:
key
);
...
...
packages/flutter/lib/src/widgets/basic.dart
View file @
9b5d1fbe
...
...
@@ -65,13 +65,12 @@ class Opacity extends SingleChildRenderObjectWidget {
///
/// The [opacity] argument must not be null and must be between 0.0 and 1.0
/// (inclusive).
Opacity
({
const
Opacity
({
Key
key
,
@required
this
.
opacity
,
Widget
child
})
:
super
(
key:
key
,
child:
child
)
{
assert
(
opacity
!=
null
&&
opacity
>=
0.0
&&
opacity
<=
1.0
);
}
})
:
assert
(
opacity
!=
null
&&
opacity
>=
0.0
&&
opacity
<=
1.0
),
super
(
key:
key
,
child:
child
);
/// The fraction to scale the child's alpha value.
///
...
...
@@ -108,15 +107,14 @@ class ShaderMask extends SingleChildRenderObjectWidget {
/// Creates a widget that applies a mask generated by a [Shader] to its child.
///
/// The [shaderCallback] and [blendMode] arguments must not be null.
ShaderMask
({
const
ShaderMask
({
Key
key
,
@required
this
.
shaderCallback
,
this
.
blendMode
:
BlendMode
.
modulate
,
Widget
child
})
:
super
(
key:
key
,
child:
child
)
{
assert
(
shaderCallback
!=
null
);
assert
(
blendMode
!=
null
);
}
})
:
assert
(
shaderCallback
!=
null
),
assert
(
blendMode
!=
null
),
super
(
key:
key
,
child:
child
);
/// Called to creates the [Shader] that generates the mask.
///
...
...
@@ -154,13 +152,12 @@ class BackdropFilter extends SingleChildRenderObjectWidget {
/// Creates a backdrop filter.
///
/// The [filter] argument must not be null.
BackdropFilter
({
const
BackdropFilter
({
Key
key
,
@required
this
.
filter
,
Widget
child
})
:
super
(
key:
key
,
child:
child
)
{
assert
(
filter
!=
null
);
}
})
:
assert
(
filter
!=
null
),
super
(
key:
key
,
child:
child
);
/// The image filter to apply to the existing painted content before painting the child.
///
...
...
@@ -206,10 +203,9 @@ class BackdropFilter extends SingleChildRenderObjectWidget {
/// * [Canvas].
class
CustomPaint
extends
SingleChildRenderObjectWidget
{
/// Creates a widget that delegates its painting.
CustomPaint
({
Key
key
,
this
.
painter
,
this
.
foregroundPainter
,
this
.
size
:
Size
.
zero
,
Widget
child
})
:
super
(
key:
key
,
child:
child
)
{
assert
(
size
!=
null
);
}
const
CustomPaint
({
Key
key
,
this
.
painter
,
this
.
foregroundPainter
,
this
.
size
:
Size
.
zero
,
Widget
child
})
:
assert
(
size
!=
null
),
super
(
key:
key
,
child:
child
);
/// The painter that paints before the children.
final
CustomPainter
painter
;
...
...
@@ -292,7 +288,7 @@ class ClipRect extends SingleChildRenderObjectWidget {
///
/// If [clipper] is null, the clip will match the layout size and position of
/// the child.
ClipRect
({
Key
key
,
this
.
clipper
,
Widget
child
})
:
super
(
key:
key
,
child:
child
);
const
ClipRect
({
Key
key
,
this
.
clipper
,
Widget
child
})
:
super
(
key:
key
,
child:
child
);
/// If non-null, determines which clip to use.
final
CustomClipper
<
Rect
>
clipper
;
...
...
@@ -330,14 +326,13 @@ class ClipRRect extends SingleChildRenderObjectWidget {
/// right-angled corners.
///
/// If [clipper] is non-null, then [borderRadius] is ignored.
ClipRRect
({
const
ClipRRect
({
Key
key
,
this
.
borderRadius
,
this
.
clipper
,
Widget
child
,
})
:
super
(
key:
key
,
child:
child
)
{
assert
(
borderRadius
!=
null
||
clipper
!=
null
);
}
})
:
assert
(
borderRadius
!=
null
||
clipper
!=
null
),
super
(
key:
key
,
child:
child
);
/// The border radius of the rounded corners.
///
...
...
@@ -379,7 +374,7 @@ class ClipOval extends SingleChildRenderObjectWidget {
///
/// If [clipper] is null, the oval will be inscribed into the layout size and
/// position of the child.
ClipOval
({
Key
key
,
this
.
clipper
,
Widget
child
})
:
super
(
key:
key
,
child:
child
);
const
ClipOval
({
Key
key
,
this
.
clipper
,
Widget
child
})
:
super
(
key:
key
,
child:
child
);
/// If non-null, determines which clip to use.
///
...
...
@@ -425,7 +420,7 @@ class ClipPath extends SingleChildRenderObjectWidget {
/// size and location of the child. However, rather than use this default,
/// consider using a [ClipRect], which can achieve the same effect more
/// efficiently.
ClipPath
({
Key
key
,
this
.
clipper
,
Widget
child
})
:
super
(
key:
key
,
child:
child
);
const
ClipPath
({
Key
key
,
this
.
clipper
,
Widget
child
})
:
super
(
key:
key
,
child:
child
);
/// If non-null, determines which clip to use.
///
...
...
@@ -451,20 +446,18 @@ class ClipPath extends SingleChildRenderObjectWidget {
/// A widget representing a physical layer that clips its children to a shape.
class
PhysicalModel
extends
SingleChildRenderObjectWidget
{
/// Creates a physical model with a rounded-rectangular clip.
PhysicalModel
({
const
PhysicalModel
({
Key
key
,
@required
this
.
shape
,
this
.
borderRadius
:
BorderRadius
.
zero
,
@required
this
.
elevation
,
@required
this
.
color
,
Widget
child
,
})
:
super
(
key:
key
,
child:
child
)
{
if
(
shape
==
BoxShape
.
rectangle
)
assert
(
borderRadius
!=
null
);
assert
(
shape
!=
null
);
assert
(
elevation
!=
null
);
assert
(
color
!=
null
);
}
})
:
assert
(
shape
!=
null
),
assert
(
borderRadius
!=
null
),
assert
(
elevation
!=
null
),
assert
(
color
!=
null
),
super
(
key:
key
,
child:
child
);
/// The type of shape.
final
BoxShape
shape
;
...
...
@@ -473,6 +466,8 @@ class PhysicalModel extends SingleChildRenderObjectWidget {
///
/// Values are clamped so that horizontal and vertical radii sums do not
/// exceed width/height.
///
/// This is ignored if the [shape] is not [BoxShape.rectangle].
final
BorderRadius
borderRadius
;
/// The z-coordinate at which to place this physical object.
...
...
@@ -501,16 +496,15 @@ class Transform extends SingleChildRenderObjectWidget {
/// Creates a widget that transforms its child.
///
/// The [transform] argument must not be null.
Transform
({
const
Transform
({
Key
key
,
@required
this
.
transform
,
this
.
origin
,
this
.
alignment
,
this
.
transformHitTests
:
true
,
Widget
child
})
:
super
(
key:
key
,
child:
child
)
{
assert
(
transform
!=
null
);
}
})
:
assert
(
transform
!=
null
),
super
(
key:
key
,
child:
child
);
/// The matrix to transform the child by during painting.
final
Matrix4
transform
;
...
...
@@ -554,15 +548,14 @@ class FittedBox extends SingleChildRenderObjectWidget {
/// Creates a widget that scales and positions its child within itself according to [fit].
///
/// The [fit] and [alignment] arguments must not be null.
FittedBox
({
const
FittedBox
({
Key
key
,
this
.
fit
:
BoxFit
.
contain
,
this
.
alignment
:
FractionalOffset
.
center
,
Widget
child
})
:
super
(
key:
key
,
child:
child
)
{
assert
(
fit
!=
null
);
assert
(
alignment
!=
null
&&
alignment
.
dx
!=
null
&&
alignment
.
dy
!=
null
);
}
})
:
assert
(
fit
!=
null
),
assert
(
alignment
!=
null
),
super
(
key:
key
,
child:
child
);
/// How to inscribe the child into the space allocated during layout.
final
BoxFit
fit
;
...
...
@@ -591,14 +584,13 @@ class FractionalTranslation extends SingleChildRenderObjectWidget {
/// Creates a widget that translates its child's painting.
///
/// The [translation] argument must not be null.
FractionalTranslation
({
const
FractionalTranslation
({
Key
key
,
@required
this
.
translation
,
this
.
transformHitTests
:
true
,
Widget
child
})
:
super
(
key:
key
,
child:
child
)
{
assert
(
translation
!=
null
);
}
})
:
assert
(
translation
!=
null
),
super
(
key:
key
,
child:
child
);
/// The offset by which to translate the child, as a multiple of its size.
final
FractionalOffset
translation
;
...
...
@@ -626,13 +618,12 @@ class RotatedBox extends SingleChildRenderObjectWidget {
/// A widget that rotates its child.
///
/// The [quarterTurns] argument must not be null.
RotatedBox
({
const
RotatedBox
({
Key
key
,
@required
this
.
quarterTurns
,
Widget
child
})
:
super
(
key:
key
,
child:
child
)
{
assert
(
quarterTurns
!=
null
);
}
})
:
assert
(
quarterTurns
!=
null
),
super
(
key:
key
,
child:
child
);
/// The number of clockwise quarter turns the child should be rotated.
final
int
quarterTurns
;
...
...
@@ -656,13 +647,12 @@ class Padding extends SingleChildRenderObjectWidget {
/// Creates a widget that insets its child.
///
/// The [padding] argument must not be null.
Padding
({
const
Padding
({
Key
key
,
@required
this
.
padding
,
Widget
child
})
:
super
(
key:
key
,
child:
child
)
{
assert
(
padding
!=
null
);
}
})
:
assert
(
padding
!=
null
),
super
(
key:
key
,
child:
child
);
/// The amount of space by which to inset the child.
final
EdgeInsets
padding
;
...
...
@@ -703,17 +693,16 @@ class Align extends SingleChildRenderObjectWidget {
/// Creates an alignment widget.
///
/// The alignment defaults to [FractionalOffset.center].
Align
({
const
Align
({
Key
key
,
this
.
alignment
:
FractionalOffset
.
center
,
this
.
widthFactor
,
this
.
heightFactor
,
Widget
child
})
:
super
(
key:
key
,
child:
child
)
{
assert
(
alignment
!=
null
&&
alignment
.
dx
!=
null
&&
alignment
.
dy
!=
null
);
assert
(
widthFactor
==
null
||
widthFactor
>=
0.0
);
assert
(
heightFactor
==
null
||
heightFactor
>=
0.0
);
}
})
:
assert
(
alignment
!=
null
),
assert
(
widthFactor
==
null
||
widthFactor
>=
0.0
),
assert
(
heightFactor
==
null
||
heightFactor
>=
0.0
),
super
(
key:
key
,
child:
child
);
/// How to align the child.
///
...
...
@@ -774,7 +763,7 @@ class Align extends SingleChildRenderObjectWidget {
/// rather than just centering it.
class
Center
extends
Align
{
/// Creates a widget that centers its child.
Center
({
Key
key
,
double
widthFactor
,
double
heightFactor
,
Widget
child
})
const
Center
({
Key
key
,
double
widthFactor
,
double
heightFactor
,
Widget
child
})
:
super
(
key:
key
,
widthFactor:
widthFactor
,
heightFactor:
heightFactor
,
child:
child
);
}
...
...
@@ -798,13 +787,12 @@ class CustomSingleChildLayout extends SingleChildRenderObjectWidget {
/// Creates a custom single child layout.
///
/// The [delegate] argument must not be null.
CustomSingleChildLayout
({
const
CustomSingleChildLayout
({
Key
key
,
@required
this
.
delegate
,
Widget
child
})
:
super
(
key:
key
,
child:
child
)
{
assert
(
delegate
!=
null
);
}
})
:
assert
(
delegate
!=
null
),
super
(
key:
key
,
child:
child
);
/// The delegate that controls the layout of the child.
final
SingleChildLayoutDelegate
delegate
;
...
...
@@ -830,10 +818,9 @@ class LayoutId extends ParentDataWidget<CustomMultiChildLayout> {
Key
key
,
@required
this
.
id
,
@required
Widget
child
})
:
super
(
key:
key
??
new
ValueKey
<
Object
>(
id
),
child:
child
)
{
assert
(
child
!=
null
);
assert
(
id
!=
null
);
}
})
:
assert
(
child
!=
null
),
assert
(
id
!=
null
),
super
(
key:
key
??
new
ValueKey
<
Object
>(
id
),
child:
child
);
/// An object representing the identity of this child.
final
Object
id
;
...
...
@@ -890,9 +877,8 @@ class CustomMultiChildLayout extends MultiChildRenderObjectWidget {
Key
key
,
@required
this
.
delegate
,
List
<
Widget
>
children:
const
<
Widget
>[],
})
:
super
(
key:
key
,
children:
children
)
{
assert
(
delegate
!=
null
);
}
})
:
assert
(
delegate
!=
null
),
super
(
key:
key
,
children:
children
);
/// The delegate that controls the layout of the children.
final
MultiChildLayoutDelegate
delegate
;
...
...
@@ -992,8 +978,8 @@ class ConstrainedBox extends SingleChildRenderObjectWidget {
Key
key
,
@required
this
.
constraints
,
Widget
child
})
:
super
(
key:
key
,
child:
child
)
{
assert
(
constraints
!=
null
);
})
:
assert
(
constraints
!=
null
),
super
(
key:
key
,
child:
child
)
{
assert
(
constraints
.
debugAssertIsValid
());
}
...
...
@@ -1028,17 +1014,16 @@ class FractionallySizedBox extends SingleChildRenderObjectWidget {
///
/// If non-null, the [widthFactor] and [heightFactor] arguments must be
/// non-negative.
FractionallySizedBox
({
const
FractionallySizedBox
({
Key
key
,
this
.
alignment
:
FractionalOffset
.
center
,
this
.
widthFactor
,
this
.
heightFactor
,
Widget
child
})
:
super
(
key:
key
,
child:
child
)
{
assert
(
alignment
!=
null
&&
alignment
.
dx
!=
null
&&
alignment
.
dy
!=
null
);
assert
(
widthFactor
==
null
||
widthFactor
>=
0.0
);
assert
(
heightFactor
==
null
||
heightFactor
>=
0.0
);
}
})
:
assert
(
alignment
!=
null
),
assert
(
widthFactor
==
null
||
widthFactor
>=
0.0
),
assert
(
heightFactor
==
null
||
heightFactor
>=
0.0
),
super
(
key:
key
,
child:
child
);
/// If non-null, the fraction of the incoming width given to the child.
///
...
...
@@ -1105,15 +1090,14 @@ class LimitedBox extends SingleChildRenderObjectWidget {
///
/// The [maxWidth] and [maxHeight] arguments must not be null and must not be
/// negative.
LimitedBox
({
const
LimitedBox
({
Key
key
,
this
.
maxWidth
:
double
.
INFINITY
,
this
.
maxHeight
:
double
.
INFINITY
,
Widget
child
})
:
super
(
key:
key
,
child:
child
)
{
assert
(
maxWidth
!=
null
&&
maxWidth
>=
0.0
);
assert
(
maxHeight
!=
null
&&
maxHeight
>=
0.0
);
}
})
:
assert
(
maxWidth
!=
null
&&
maxWidth
>=
0.0
),
assert
(
maxHeight
!=
null
&&
maxHeight
>=
0.0
),
super
(
key:
key
,
child:
child
);
/// The maximum width limit to apply in the absence of a maxWidth constraint.
final
double
maxWidth
;
...
...
@@ -1150,7 +1134,7 @@ class LimitedBox extends SingleChildRenderObjectWidget {
/// See [RenderOverflowBox] for details.
class
OverflowBox
extends
SingleChildRenderObjectWidget
{
/// Creates a widget that lets its child overflow itself.
OverflowBox
({
const
OverflowBox
({
Key
key
,
this
.
alignment
:
FractionalOffset
.
center
,
this
.
minWidth
,
...
...
@@ -1227,15 +1211,14 @@ class SizedOverflowBox extends SingleChildRenderObjectWidget {
/// Creates a widget of a given size that lets its child overflow.
///
/// The [size] argument must not be null.
SizedOverflowBox
({
const
SizedOverflowBox
({
Key
key
,
@required
this
.
size
,
this
.
alignment
:
FractionalOffset
.
center
,
Widget
child
})
:
super
(
key:
key
,
child:
child
)
{
assert
(
size
!=
null
);
assert
(
alignment
!=
null
&&
alignment
.
dx
!=
null
&&
alignment
.
dy
!=
null
);
}
})
:
assert
(
size
!=
null
),
assert
(
alignment
!=
null
),
super
(
key:
key
,
child:
child
);
/// How to align the child.
///
...
...
@@ -1280,10 +1263,9 @@ class SizedOverflowBox extends SingleChildRenderObjectWidget {
/// room in the parent.
class
Offstage
extends
SingleChildRenderObjectWidget
{
/// Creates a widget that visually hides its child.
Offstage
({
Key
key
,
this
.
offstage
:
true
,
Widget
child
})
:
super
(
key:
key
,
child:
child
)
{
assert
(
offstage
!=
null
);
}
const
Offstage
({
Key
key
,
this
.
offstage
:
true
,
Widget
child
})
:
assert
(
offstage
!=
null
),
super
(
key:
key
,
child:
child
);
/// Whether the child is hidden from the rest of the tree.
///
...
...
@@ -1355,13 +1337,12 @@ class AspectRatio extends SingleChildRenderObjectWidget {
/// Creates a widget with a specific aspect ratio.
///
/// The [aspectRatio] argument must not be null.
AspectRatio
({
const
AspectRatio
({
Key
key
,
@required
this
.
aspectRatio
,
Widget
child
})
:
super
(
key:
key
,
child:
child
)
{
assert
(
aspectRatio
!=
null
);
}
})
:
assert
(
aspectRatio
!=
null
),
super
(
key:
key
,
child:
child
);
/// The aspect ratio to attempt to use.
///
...
...
@@ -1400,7 +1381,7 @@ class IntrinsicWidth extends SingleChildRenderObjectWidget {
/// Creates a widget that sizes its child to the child's intrinsic width.
///
/// This class is relatively expensive. Avoid using it where possible.
IntrinsicWidth
({
Key
key
,
this
.
stepWidth
,
this
.
stepHeight
,
Widget
child
})
const
IntrinsicWidth
({
Key
key
,
this
.
stepWidth
,
this
.
stepHeight
,
Widget
child
})
:
super
(
key:
key
,
child:
child
);
/// If non-null, force the child's width to be a multiple of this value.
...
...
@@ -1431,7 +1412,7 @@ class IntrinsicHeight extends SingleChildRenderObjectWidget {
/// Creates a widget that sizes its child to the child's intrinsic height.
///
/// This class is relatively expensive. Avoid using it where possible.
IntrinsicHeight
({
Key
key
,
Widget
child
})
:
super
(
key:
key
,
child:
child
);
const
IntrinsicHeight
({
Key
key
,
Widget
child
})
:
super
(
key:
key
,
child:
child
);
@override
RenderIntrinsicHeight
createRenderObject
(
BuildContext
context
)
=>
new
RenderIntrinsicHeight
();
...
...
@@ -1449,15 +1430,14 @@ class Baseline extends SingleChildRenderObjectWidget {
/// Creates a widget that positions its child according to the child's baseline.
///
/// The [baseline] and [baselineType] arguments must not be null.
Baseline
({
const
Baseline
({
Key
key
,
@required
this
.
baseline
,
@required
this
.
baselineType
,
Widget
child
})
:
super
(
key:
key
,
child:
child
)
{
assert
(
baseline
!=
null
);
assert
(
baselineType
!=
null
);
}
})
:
assert
(
baseline
!=
null
),
assert
(
baselineType
!=
null
),
super
(
key:
key
,
child:
child
);
/// The number of logical pixels from the top of this box at which to position
/// the child's baseline.
...
...
@@ -1502,7 +1482,7 @@ class Baseline extends SingleChildRenderObjectWidget {
/// * [SliverGrid], which displays multiple box widgets in arbitrary positions.
class
SliverToBoxAdapter
extends
SingleChildRenderObjectWidget
{
/// Creates a sliver that contains a single box widget.
SliverToBoxAdapter
({
const
SliverToBoxAdapter
({
Key
key
,
Widget
child
,
})
:
super
(
key:
key
,
child:
child
);
...
...
@@ -1531,13 +1511,12 @@ class SliverPadding extends SingleChildRenderObjectWidget {
/// Creates a sliver that applies padding on each side of another sliver.
///
/// The [padding] argument must not be null.
SliverPadding
({
const
SliverPadding
({
Key
key
,
@required
this
.
padding
,
Widget
sliver
,
})
:
super
(
key:
key
,
child:
sliver
)
{
assert
(
padding
!=
null
);
}
})
:
assert
(
padding
!=
null
),
super
(
key:
key
,
child:
sliver
);
/// The amount of space by which to inset the child sliver.
final
EdgeInsets
padding
;
...
...
@@ -1576,9 +1555,8 @@ class BlockBody extends MultiChildRenderObjectWidget {
Key
key
,
this
.
mainAxis
:
Axis
.
vertical
,
List
<
Widget
>
children:
const
<
Widget
>[],
})
:
super
(
key:
key
,
children:
children
)
{
assert
(
mainAxis
!=
null
);
}
})
:
assert
(
mainAxis
!=
null
),
super
(
key:
key
,
children:
children
);
/// The direction to use as the main axis.
final
Axis
mainAxis
;
...
...
@@ -1730,7 +1708,7 @@ class Positioned extends ParentDataWidget<Stack> {
/// [width]), and only two out of the three vertical values ([top],
/// [bottom], [height]), can be set. In each case, at least one of
/// the three must be null.
Positioned
({
const
Positioned
({
Key
key
,
this
.
left
,
this
.
top
,
...
...
@@ -1739,10 +1717,9 @@ class Positioned extends ParentDataWidget<Stack> {
this
.
width
,
this
.
height
,
@required
Widget
child
})
:
super
(
key:
key
,
child:
child
)
{
assert
(
left
==
null
||
right
==
null
||
width
==
null
);
assert
(
top
==
null
||
bottom
==
null
||
height
==
null
);
}
})
:
assert
(
left
==
null
||
right
==
null
||
width
==
null
),
assert
(
top
==
null
||
bottom
==
null
||
height
==
null
),
super
(
key:
key
,
child:
child
);
/// Creates a Positioned object with the values from the given [Rect].
///
...
...
@@ -1956,12 +1933,12 @@ class Flex extends MultiChildRenderObjectWidget {
this
.
crossAxisAlignment
:
CrossAxisAlignment
.
center
,
this
.
textBaseline
,
List
<
Widget
>
children:
const
<
Widget
>[],
})
:
super
(
key:
key
,
children:
children
)
{
assert
(
direction
!=
null
);
assert
(
mainAxisAlignment
!=
null
);
assert
(
mainAxisSize
!=
null
);
assert
(
crossAxisAlignment
!=
null
);
assert
(
crossAxisAlignment
!=
CrossAxisAlignment
.
baseline
||
textBaseline
!=
null
);
})
:
assert
(
direction
!=
null
),
assert
(
mainAxisAlignment
!=
null
),
assert
(
mainAxisSize
!=
null
),
assert
(
crossAxisAlignment
!=
null
),
super
(
key:
key
,
children:
children
)
{
assert
(
crossAxisAlignment
!=
CrossAxisAlignment
.
baseline
||
textBaseline
!=
null
);
// https://github.com/dart-lang/sdk/issues/29278
}
/// The direction to use as the main axis.
...
...
@@ -2185,7 +2162,7 @@ class Column extends Flex {
class
Flexible
extends
ParentDataWidget
<
Flex
>
{
/// Creates a widget that controls how a child of a [Row], [Column], or [Flex]
/// flexes.
Flexible
({
const
Flexible
({
Key
key
,
this
.
flex
:
1
,
this
.
fit
:
FlexFit
.
loose
,
...
...
@@ -2257,7 +2234,7 @@ class Flexible extends ParentDataWidget<Flex> {
class
Expanded
extends
Flexible
{
/// Creates a widget that expands a child of a [Row], [Column], or [Flex]
/// expand to fill the available space in the main axis.
Expanded
({
const
Expanded
({
Key
key
,
int
flex:
1
,
@required
Widget
child
,
...
...
@@ -2419,9 +2396,9 @@ class Flow extends MultiChildRenderObjectWidget {
Key
key
,
@required
this
.
delegate
,
List
<
Widget
>
children:
const
<
Widget
>[],
})
:
super
(
key:
key
,
children:
RepaintBoundary
.
wrapAll
(
children
))
{
assert
(
delegate
!=
null
);
}
})
:
assert
(
delegate
!=
null
),
super
(
key:
key
,
children:
RepaintBoundary
.
wrapAll
(
children
)
);
// https://github.com/dart-lang/sdk/issues/29277
/// Creates a flow layout.
///
...
...
@@ -2491,7 +2468,7 @@ class RichText extends LeafRenderObjectWidget {
/// Creates a paragraph of rich text.
///
/// The [text], [softWrap], and [overflow] arguments must not be null.
RichText
({
const
RichText
({
Key
key
,
@required
this
.
text
,
this
.
textAlign
,
...
...
@@ -2499,12 +2476,11 @@ class RichText extends LeafRenderObjectWidget {
this
.
overflow
:
TextOverflow
.
clip
,
this
.
textScaleFactor
:
1.0
,
this
.
maxLines
,
})
:
super
(
key:
key
)
{
assert
(
text
!=
null
);
assert
(
softWrap
!=
null
);
assert
(
overflow
!=
null
);
assert
(
textScaleFactor
!=
null
);
}
})
:
assert
(
text
!=
null
),
assert
(
softWrap
!=
null
),
assert
(
overflow
!=
null
),
assert
(
textScaleFactor
!=
null
),
super
(
key:
key
);
/// The text to display in this widget.
final
TextSpan
text
;
...
...
@@ -2564,7 +2540,7 @@ class RawImage extends LeafRenderObjectWidget {
/// Creates a widget that displays an image.
///
/// The [scale] and [repeat] arguments must not be null.
RawImage
({
const
RawImage
({
Key
key
,
this
.
image
,
this
.
width
,
...
...
@@ -2575,10 +2551,9 @@ class RawImage extends LeafRenderObjectWidget {
this
.
alignment
,
this
.
repeat
:
ImageRepeat
.
noRepeat
,
this
.
centerSlice
})
:
super
(
key:
key
)
{
assert
(
scale
!=
null
);
assert
(
repeat
!=
null
);
}
})
:
assert
(
scale
!=
null
),
assert
(
repeat
!=
null
),
super
(
key:
key
);
/// The image to display.
final
ui
.
Image
image
;
...
...
@@ -2686,14 +2661,13 @@ class DefaultAssetBundle extends InheritedWidget {
/// Creates a widget that determines the default asset bundle for its descendants.
///
/// The [bundle] and [child] arguments must not be null.
DefaultAssetBundle
({
const
DefaultAssetBundle
({
Key
key
,
@required
this
.
bundle
,
@required
Widget
child
})
:
super
(
key:
key
,
child:
child
)
{
assert
(
bundle
!=
null
);
assert
(
child
!=
null
);
}
})
:
assert
(
bundle
!=
null
),
assert
(
child
!=
null
),
super
(
key:
key
,
child:
child
);
/// The bundle to use as a default.
final
AssetBundle
bundle
;
...
...
@@ -2729,15 +2703,13 @@ class WidgetToRenderBoxAdapter extends LeafRenderObjectWidget {
/// The [renderBox] argument must not be null.
WidgetToRenderBoxAdapter
({
@required
this
.
renderBox
,
this
.
onBuild
})
:
this
.
onBuild
,
})
:
assert
(
renderBox
!=
null
),
// WidgetToRenderBoxAdapter objects are keyed to their render box. This
// prevents the widget being used in the widget hierarchy in two different
// places, which would cause the RenderBox to get inserted in multiple
// places in the RenderObject tree.
super
(
key:
new
GlobalObjectKey
(
renderBox
))
{
assert
(
renderBox
!=
null
);
}
super
(
key:
new
GlobalObjectKey
(
renderBox
));
/// The render box to place in the widget tree.
final
RenderBox
renderBox
;
...
...
@@ -2772,7 +2744,7 @@ class Listener extends SingleChildRenderObjectWidget {
/// Creates a widget that forwards point events to callbacks.
///
/// The [behavior] argument defaults to [HitTestBehavior.deferToChild].
Listener
({
const
Listener
({
Key
key
,
this
.
onPointerDown
,
this
.
onPointerMove
,
...
...
@@ -2780,9 +2752,8 @@ class Listener extends SingleChildRenderObjectWidget {
this
.
onPointerCancel
,
this
.
behavior
:
HitTestBehavior
.
deferToChild
,
Widget
child
})
:
super
(
key:
key
,
child:
child
)
{
assert
(
behavior
!=
null
);
}
})
:
assert
(
behavior
!=
null
),
super
(
key:
key
,
child:
child
);
/// Called when a pointer comes into contact with the screen at this object.
final
PointerDownEventListener
onPointerDown
;
...
...
@@ -2858,7 +2829,7 @@ class Listener extends SingleChildRenderObjectWidget {
/// for the surround tree.
class
RepaintBoundary
extends
SingleChildRenderObjectWidget
{
/// Creates a widget that isolates repaints.
RepaintBoundary
({
Key
key
,
Widget
child
})
:
super
(
key:
key
,
child:
child
);
const
RepaintBoundary
({
Key
key
,
Widget
child
})
:
super
(
key:
key
,
child:
child
);
/// Wraps the given child in a [RepaintBoundary].
///
...
...
@@ -2906,14 +2877,13 @@ class IgnorePointer extends SingleChildRenderObjectWidget {
///
/// The [ignoring] argument must not be null. If [ignoringSemantics], this
/// render object will be ignored for semantics if [ignoring] is true.
IgnorePointer
({
const
IgnorePointer
({
Key
key
,
this
.
ignoring
:
true
,
this
.
ignoringSemantics
,
Widget
child
})
:
super
(
key:
key
,
child:
child
)
{
assert
(
ignoring
!=
null
);
}
})
:
assert
(
ignoring
!=
null
),
super
(
key:
key
,
child:
child
);
/// Whether this widget is ignored during hit testing.
///
...
...
@@ -2966,13 +2936,12 @@ class AbsorbPointer extends SingleChildRenderObjectWidget {
/// Creates a widget that absorbs pointers during hit testing.
///
/// The [absorbing] argument must not be null
AbsorbPointer
({
const
AbsorbPointer
({
Key
key
,
this
.
absorbing
:
true
,
Widget
child
})
:
super
(
key:
key
,
child:
child
)
{
assert
(
absorbing
!=
null
);
}
})
:
assert
(
absorbing
!=
null
),
super
(
key:
key
,
child:
child
);
/// Whether this widget absorbs pointers during hit testing.
///
...
...
@@ -3000,7 +2969,7 @@ class MetaData extends SingleChildRenderObjectWidget {
/// Creates a widget that hold opaque meta data.
///
/// The [behavior] argument defaults to [HitTestBehavior.deferToChild].
MetaData
({
const
MetaData
({
Key
key
,
this
.
metaData
,
this
.
behavior
:
HitTestBehavior
.
deferToChild
,
...
...
@@ -3061,15 +3030,14 @@ class Semantics extends SingleChildRenderObjectWidget {
/// Creates a semantic annotation.
///
/// The [container] argument must not be null.
Semantics
({
const
Semantics
({
Key
key
,
Widget
child
,
this
.
container
:
false
,
this
.
checked
,
this
.
label
})
:
super
(
key:
key
,
child:
child
)
{
assert
(
container
!=
null
);
}
})
:
assert
(
container
!=
null
),
super
(
key:
key
,
child:
child
);
/// If 'container' is true, this Widget will introduce a new node in
/// the semantics tree. Otherwise, the semantics will be merged with
...
...
@@ -3138,7 +3106,7 @@ class Semantics extends SingleChildRenderObjectWidget {
/// callbacks.
class
MergeSemantics
extends
SingleChildRenderObjectWidget
{
/// Creates a widget that merges the semantics of its descendants.
MergeSemantics
({
Key
key
,
Widget
child
})
:
super
(
key:
key
,
child:
child
);
const
MergeSemantics
({
Key
key
,
Widget
child
})
:
super
(
key:
key
,
child:
child
);
@override
RenderMergeSemantics
createRenderObject
(
BuildContext
context
)
=>
new
RenderMergeSemantics
();
...
...
@@ -3152,7 +3120,7 @@ class MergeSemantics extends SingleChildRenderObjectWidget {
/// redundant with the chip label.
class
ExcludeSemantics
extends
SingleChildRenderObjectWidget
{
/// Creates a widget that drops all the semantics of its descendants.
ExcludeSemantics
({
Key
key
,
Widget
child
})
:
super
(
key:
key
,
child:
child
);
const
ExcludeSemantics
({
Key
key
,
Widget
child
})
:
super
(
key:
key
,
child:
child
);
@override
RenderExcludeSemantics
createRenderObject
(
BuildContext
context
)
=>
new
RenderExcludeSemantics
();
...
...
@@ -3163,12 +3131,11 @@ class ExcludeSemantics extends SingleChildRenderObjectWidget {
/// Useful for attaching a key to an existing widget.
class
KeyedSubtree
extends
StatelessWidget
{
/// Creates a widget that builds its child.
KeyedSubtree
({
const
KeyedSubtree
({
Key
key
,
@required
this
.
child
})
:
super
(
key:
key
)
{
assert
(
child
!=
null
);
}
})
:
assert
(
child
!=
null
),
super
(
key:
key
);
/// The widget below this widget in the tree.
final
Widget
child
;
...
...
@@ -3209,12 +3176,11 @@ class Builder extends StatelessWidget {
/// Creates a widget that delegates its build to a callback.
///
/// The [builder] argument must not be null.
Builder
({
const
Builder
({
Key
key
,
@required
this
.
builder
})
:
super
(
key:
key
)
{
assert
(
builder
!=
null
);
}
})
:
assert
(
builder
!=
null
),
super
(
key:
key
);
/// Called to obtain the child widget.
///
...
...
@@ -3243,12 +3209,11 @@ class StatefulBuilder extends StatefulWidget {
/// Creates a widget that both has state and delegates its build to a callback.
///
/// The [builder] argument must not be null.
StatefulBuilder
({
const
StatefulBuilder
({
Key
key
,
@required
this
.
builder
})
:
super
(
key:
key
)
{
assert
(
builder
!=
null
);
}
})
:
assert
(
builder
!=
null
),
super
(
key:
key
);
/// Called to obtain the child widget.
///
...
...
packages/flutter/lib/src/widgets/framework.dart
View file @
9b5d1fbe
...
...
@@ -1339,9 +1339,9 @@ abstract class MultiChildRenderObjectWidget extends RenderObjectWidget {
/// The [children] argument must not be null and must not contain any null
/// objects.
MultiChildRenderObjectWidget
({
Key
key
,
this
.
children
:
const
<
Widget
>[]
})
:
super
(
key:
key
)
{
assert
(
children
!=
null
);
assert
(!
children
.
any
((
Widget
child
)
=>
child
==
null
));
:
assert
(
children
!=
null
),
super
(
key:
key
)
{
assert
(!
children
.
any
((
Widget
child
)
=>
child
==
null
));
// https://github.com/dart-lang/sdk/issues/29276
}
/// The widgets below this widget in the tree.
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment