mirror of
https://github.com/flutter/flutter
synced 2024-10-13 03:32:55 +00:00
parent
0dc290c023
commit
549b412656
|
@ -1228,8 +1228,7 @@ class TransformLayer extends OffsetLayer {
|
|||
/// The [transform] and [offset] properties must be non-null before the
|
||||
/// compositing phase of the pipeline.
|
||||
TransformLayer({ Matrix4 transform, Offset offset = Offset.zero })
|
||||
: assert(transform.storage.every((double value) => value.isFinite)),
|
||||
_transform = transform,
|
||||
: _transform = transform,
|
||||
super(offset: offset);
|
||||
|
||||
/// The matrix to apply.
|
||||
|
|
|
@ -2280,11 +2280,9 @@ class RenderFittedBox extends RenderProxyBox {
|
|||
final Rect sourceRect = _resolvedAlignment.inscribe(sizes.source, Offset.zero & childSize);
|
||||
final Rect destinationRect = _resolvedAlignment.inscribe(sizes.destination, Offset.zero & size);
|
||||
_hasVisualOverflow = sourceRect.width < childSize.width || sourceRect.height < childSize.height;
|
||||
assert(scaleX.isFinite && scaleY.isFinite);
|
||||
_transform = Matrix4.translationValues(destinationRect.left, destinationRect.top, 0.0)
|
||||
..scale(scaleX, scaleY, 1.0)
|
||||
..translate(-sourceRect.left, -sourceRect.top);
|
||||
assert(_transform.storage.every((double value) => value.isFinite));
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -2298,7 +2296,7 @@ class RenderFittedBox extends RenderProxyBox {
|
|||
|
||||
@override
|
||||
void paint(PaintingContext context, Offset offset) {
|
||||
if (size.isEmpty || child.size.isEmpty)
|
||||
if (size.isEmpty)
|
||||
return;
|
||||
_updatePaintData();
|
||||
if (child != null) {
|
||||
|
|
|
@ -15,12 +15,11 @@ import '../flutter_test_alternative.dart';
|
|||
import 'rendering_tester.dart';
|
||||
|
||||
void main() {
|
||||
test('RenderFittedBox does not paint with empty sizes', () {
|
||||
test('RenderFittedBox paint', () {
|
||||
bool painted;
|
||||
RenderFittedBox makeFittedBox(Size size) {
|
||||
RenderFittedBox makeFittedBox() {
|
||||
return RenderFittedBox(
|
||||
child: RenderCustomPaint(
|
||||
preferredSize: size,
|
||||
painter: TestCallbackPainter(onPaint: () {
|
||||
painted = true;
|
||||
}),
|
||||
|
@ -28,19 +27,13 @@ void main() {
|
|||
);
|
||||
}
|
||||
|
||||
// The RenderFittedBox paints if both its size and its child's size are nonempty.
|
||||
painted = false;
|
||||
layout(makeFittedBox(Size(1, 1)), phase: EnginePhase.paint);
|
||||
layout(makeFittedBox(), phase: EnginePhase.paint);
|
||||
expect(painted, equals(true));
|
||||
|
||||
// The RenderFittedBox should not paint if its child is empty-sized.
|
||||
painted = false;
|
||||
layout(makeFittedBox(Size.zero), phase: EnginePhase.paint);
|
||||
expect(painted, equals(false));
|
||||
|
||||
// The RenderFittedBox should not paint if it is empty.
|
||||
painted = false;
|
||||
layout(makeFittedBox(Size(1, 1)), constraints: BoxConstraints.tight(Size.zero), phase: EnginePhase.paint);
|
||||
layout(makeFittedBox(), constraints: BoxConstraints.tight(Size.zero), phase: EnginePhase.paint);
|
||||
expect(painted, equals(false));
|
||||
});
|
||||
|
||||
|
|
Loading…
Reference in a new issue