parent
44c4e930d1
commit
19f615fc2f
@ -51,12 +51,12 @@ class _ScaffoldLayout extends MultiChildLayoutDelegate {
|
|||||||
double contentTop = padding.top;
|
double contentTop = padding.top;
|
||||||
double contentBottom = size.height - padding.bottom;
|
double contentBottom = size.height - padding.bottom;
|
||||||
|
|
||||||
if (isChild(_ScaffoldSlot.toolBar)) {
|
if (hasChild(_ScaffoldSlot.toolBar)) {
|
||||||
contentTop = layoutChild(_ScaffoldSlot.toolBar, fullWidthConstraints).height;
|
contentTop = layoutChild(_ScaffoldSlot.toolBar, fullWidthConstraints).height;
|
||||||
positionChild(_ScaffoldSlot.toolBar, Offset.zero);
|
positionChild(_ScaffoldSlot.toolBar, Offset.zero);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (isChild(_ScaffoldSlot.body)) {
|
if (hasChild(_ScaffoldSlot.body)) {
|
||||||
final double bodyHeight = contentBottom - contentTop;
|
final double bodyHeight = contentBottom - contentTop;
|
||||||
final BoxConstraints bodyConstraints = fullWidthConstraints.tighten(height: bodyHeight);
|
final BoxConstraints bodyConstraints = fullWidthConstraints.tighten(height: bodyHeight);
|
||||||
layoutChild(_ScaffoldSlot.body, bodyConstraints);
|
layoutChild(_ScaffoldSlot.body, bodyConstraints);
|
||||||
@ -75,17 +75,17 @@ class _ScaffoldLayout extends MultiChildLayoutDelegate {
|
|||||||
Size bottomSheetSize = Size.zero;
|
Size bottomSheetSize = Size.zero;
|
||||||
Size snackBarSize = Size.zero;
|
Size snackBarSize = Size.zero;
|
||||||
|
|
||||||
if (isChild(_ScaffoldSlot.bottomSheet)) {
|
if (hasChild(_ScaffoldSlot.bottomSheet)) {
|
||||||
bottomSheetSize = layoutChild(_ScaffoldSlot.bottomSheet, fullWidthConstraints);
|
bottomSheetSize = layoutChild(_ScaffoldSlot.bottomSheet, fullWidthConstraints);
|
||||||
positionChild(_ScaffoldSlot.bottomSheet, new Offset((size.width - bottomSheetSize.width) / 2.0, contentBottom - bottomSheetSize.height));
|
positionChild(_ScaffoldSlot.bottomSheet, new Offset((size.width - bottomSheetSize.width) / 2.0, contentBottom - bottomSheetSize.height));
|
||||||
}
|
}
|
||||||
|
|
||||||
if (isChild(_ScaffoldSlot.snackBar)) {
|
if (hasChild(_ScaffoldSlot.snackBar)) {
|
||||||
snackBarSize = layoutChild(_ScaffoldSlot.snackBar, fullWidthConstraints);
|
snackBarSize = layoutChild(_ScaffoldSlot.snackBar, fullWidthConstraints);
|
||||||
positionChild(_ScaffoldSlot.snackBar, new Offset(0.0, contentBottom - snackBarSize.height));
|
positionChild(_ScaffoldSlot.snackBar, new Offset(0.0, contentBottom - snackBarSize.height));
|
||||||
}
|
}
|
||||||
|
|
||||||
if (isChild(_ScaffoldSlot.floatingActionButton)) {
|
if (hasChild(_ScaffoldSlot.floatingActionButton)) {
|
||||||
final Size fabSize = layoutChild(_ScaffoldSlot.floatingActionButton, looseConstraints);
|
final Size fabSize = layoutChild(_ScaffoldSlot.floatingActionButton, looseConstraints);
|
||||||
final double fabX = size.width - fabSize.width - _kFloatingActionButtonMargin;
|
final double fabX = size.width - fabSize.width - _kFloatingActionButtonMargin;
|
||||||
double fabY = contentBottom - fabSize.height - _kFloatingActionButtonMargin;
|
double fabY = contentBottom - fabSize.height - _kFloatingActionButtonMargin;
|
||||||
@ -96,7 +96,7 @@ class _ScaffoldLayout extends MultiChildLayoutDelegate {
|
|||||||
positionChild(_ScaffoldSlot.floatingActionButton, new Offset(fabX, fabY));
|
positionChild(_ScaffoldSlot.floatingActionButton, new Offset(fabX, fabY));
|
||||||
}
|
}
|
||||||
|
|
||||||
if (isChild(_ScaffoldSlot.drawer)) {
|
if (hasChild(_ScaffoldSlot.drawer)) {
|
||||||
layoutChild(_ScaffoldSlot.drawer, new BoxConstraints.tight(size));
|
layoutChild(_ScaffoldSlot.drawer, new BoxConstraints.tight(size));
|
||||||
positionChild(_ScaffoldSlot.drawer, Offset.zero);
|
positionChild(_ScaffoldSlot.drawer, Offset.zero);
|
||||||
}
|
}
|
||||||
|
@ -32,7 +32,7 @@ abstract class MultiChildLayoutDelegate {
|
|||||||
/// Call this from the [performLayout] or [getSize] methods to
|
/// Call this from the [performLayout] or [getSize] methods to
|
||||||
/// determine which children are available, if the child list might
|
/// determine which children are available, if the child list might
|
||||||
/// vary.
|
/// vary.
|
||||||
bool isChild(Object childId) => _idToChild[childId] != null;
|
bool hasChild(Object childId) => _idToChild[childId] != null;
|
||||||
|
|
||||||
/// Ask the child to update its layout within the limits specified by
|
/// Ask the child to update its layout within the limits specified by
|
||||||
/// the constraints parameter. The child's size is returned.
|
/// the constraints parameter. The child's size is returned.
|
||||||
|
@ -28,7 +28,7 @@ class TestMultiChildLayoutDelegate extends MultiChildLayoutDelegate {
|
|||||||
BoxConstraints constraints = new BoxConstraints.loose(size);
|
BoxConstraints constraints = new BoxConstraints.loose(size);
|
||||||
performLayoutSize0 = layoutChild(0, constraints);
|
performLayoutSize0 = layoutChild(0, constraints);
|
||||||
performLayoutSize1 = layoutChild(1, constraints);
|
performLayoutSize1 = layoutChild(1, constraints);
|
||||||
performLayoutIsChild = isChild('fred');
|
performLayoutIsChild = hasChild('fred');
|
||||||
}, returnsNormally);
|
}, returnsNormally);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user