@@ -56,6 +56,12 @@ class FLabel extends StatelessWidget {
56
56
/// The axis that determines the layout direction.
57
57
final Axis axis;
58
58
59
+ /// Whether the child should expand to fill the available space. Defaults to false.
60
+ ///
61
+ /// ## Contract
62
+ /// Only applicable when [axis] is [Axis.vertical] .
63
+ final bool expands;
64
+
59
65
/// The label's states.
60
66
final Set <WidgetState > states;
61
67
@@ -70,9 +76,10 @@ class FLabel extends StatelessWidget {
70
76
this .label,
71
77
this .description,
72
78
this .error,
79
+ this .expands = false ,
73
80
this .states = const {},
74
81
super .key,
75
- });
82
+ }) : assert (axis == Axis .vertical || ! expands, 'expands can only be true when axis is vertical' ) ;
76
83
77
84
@override
78
85
Widget build (BuildContext context) {
@@ -100,6 +107,7 @@ class FLabel extends StatelessWidget {
100
107
label: label,
101
108
description: description,
102
109
error: error,
110
+ expands: expands,
103
111
states: states,
104
112
child: child,
105
113
),
@@ -111,6 +119,7 @@ class FLabel extends StatelessWidget {
111
119
super .debugFillProperties (properties);
112
120
properties
113
121
..add (EnumProperty ('axis' , axis))
122
+ ..add (FlagProperty ('expands' , value: expands, ifTrue: 'expands' ))
114
123
..add (IterableProperty ('states' , states));
115
124
}
116
125
}
@@ -206,6 +215,7 @@ class _FVerticalLabel extends StatelessWidget {
206
215
final Widget ? label;
207
216
final Widget ? description;
208
217
final Widget ? error;
218
+ final bool expands;
209
219
final Set <WidgetState > states;
210
220
final Widget child;
211
221
@@ -214,6 +224,7 @@ class _FVerticalLabel extends StatelessWidget {
214
224
required this .label,
215
225
required this .description,
216
226
required this .error,
227
+ required this .expands,
217
228
required this .states,
218
229
required this .child,
219
230
});
@@ -232,7 +243,12 @@ class _FVerticalLabel extends StatelessWidget {
232
243
child: label! ,
233
244
),
234
245
),
235
- Padding (padding: style.childPadding, child: child),
246
+ if (expands)
247
+ Expanded (
248
+ child: Padding (padding: style.childPadding, child: child),
249
+ )
250
+ else
251
+ Padding (padding: style.childPadding, child: child),
236
252
if (description != null )
237
253
Padding (
238
254
padding: style.descriptionPadding,
@@ -259,6 +275,7 @@ class _FVerticalLabel extends StatelessWidget {
259
275
super .debugFillProperties (properties);
260
276
properties
261
277
..add (StringProperty ('style' , style.toString ()))
278
+ ..add (FlagProperty ('expands' , value: expands, ifTrue: 'expands' ))
262
279
..add (IterableProperty ('states' , states));
263
280
}
264
281
}
0 commit comments