mirror of
https://github.com/flutter/flutter.git
synced 2026-02-11 21:33:08 +08:00
Revert changes to opacity/fade transition repaint boundary and secondary change (#101844)
This commit is contained in:
parent
9526c84b2e
commit
08a23498c1
@ -242,7 +242,7 @@ class Directionality extends InheritedWidget {
|
||||
/// opacity.
|
||||
/// * [Image], which can directly provide a partially transparent image with
|
||||
/// much less performance hit.
|
||||
class Opacity extends StatelessWidget {
|
||||
class Opacity extends SingleChildRenderObjectWidget {
|
||||
/// Creates a widget that makes its child partially transparent.
|
||||
///
|
||||
/// The [opacity] argument must not be null and must be between 0.0 and 1.0
|
||||
@ -251,10 +251,10 @@ class Opacity extends StatelessWidget {
|
||||
Key? key,
|
||||
required this.opacity,
|
||||
this.alwaysIncludeSemantics = false,
|
||||
this.child,
|
||||
Widget? child,
|
||||
}) : assert(opacity != null && opacity >= 0.0 && opacity <= 1.0),
|
||||
assert(alwaysIncludeSemantics != null),
|
||||
super(key: key);
|
||||
super(key: key, child: child);
|
||||
|
||||
/// The fraction to scale the child's alpha value.
|
||||
///
|
||||
@ -278,44 +278,6 @@ class Opacity extends StatelessWidget {
|
||||
/// would otherwise contribute relevant semantics.
|
||||
final bool alwaysIncludeSemantics;
|
||||
|
||||
/// The widget below this widget in the tree.
|
||||
///
|
||||
/// {@macro flutter.widgets.ProxyWidget.child}
|
||||
final Widget? child;
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return _Opacity(
|
||||
opacity: opacity,
|
||||
alwaysIncludeSemantics: alwaysIncludeSemantics,
|
||||
child: RepaintBoundary(
|
||||
child: child,
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
@override
|
||||
void debugFillProperties(DiagnosticPropertiesBuilder properties) {
|
||||
super.debugFillProperties(properties);
|
||||
properties.add(DoubleProperty('opacity', opacity));
|
||||
properties.add(FlagProperty('alwaysIncludeSemantics', value: alwaysIncludeSemantics, ifTrue: 'alwaysIncludeSemantics'));
|
||||
}
|
||||
}
|
||||
|
||||
/// The backing implementation of [Opacity].
|
||||
class _Opacity extends SingleChildRenderObjectWidget {
|
||||
const _Opacity({
|
||||
Key? key,
|
||||
required this.opacity,
|
||||
this.alwaysIncludeSemantics = false,
|
||||
Widget? child,
|
||||
}) : assert(opacity != null && opacity >= 0.0 && opacity <= 1.0),
|
||||
assert(alwaysIncludeSemantics != null),
|
||||
super(key: key, child: child);
|
||||
|
||||
final double opacity;
|
||||
final bool alwaysIncludeSemantics;
|
||||
|
||||
@override
|
||||
RenderOpacity createRenderObject(BuildContext context) {
|
||||
return RenderOpacity(
|
||||
@ -330,6 +292,13 @@ class _Opacity extends SingleChildRenderObjectWidget {
|
||||
..opacity = opacity
|
||||
..alwaysIncludeSemantics = alwaysIncludeSemantics;
|
||||
}
|
||||
|
||||
@override
|
||||
void debugFillProperties(DiagnosticPropertiesBuilder properties) {
|
||||
super.debugFillProperties(properties);
|
||||
properties.add(DoubleProperty('opacity', opacity));
|
||||
properties.add(FlagProperty('alwaysIncludeSemantics', value: alwaysIncludeSemantics, ifTrue: 'alwaysIncludeSemantics'));
|
||||
}
|
||||
}
|
||||
|
||||
/// A widget that applies a mask generated by a [Shader] to its child.
|
||||
|
||||
@ -1759,9 +1759,7 @@ class _AnimatedOpacityState extends ImplicitlyAnimatedWidgetState<AnimatedOpacit
|
||||
return FadeTransition(
|
||||
opacity: _opacityAnimation,
|
||||
alwaysIncludeSemantics: widget.alwaysIncludeSemantics,
|
||||
child: RepaintBoundary(
|
||||
child: widget.child,
|
||||
),
|
||||
child: widget.child,
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
@ -519,7 +519,7 @@ class SizeTransition extends AnimatedWidget {
|
||||
/// * [Opacity], which does not animate changes in opacity.
|
||||
/// * [AnimatedOpacity], which animates changes in opacity without taking an
|
||||
/// explicit [Animation] argument.
|
||||
class FadeTransition extends StatelessWidget {
|
||||
class FadeTransition extends SingleChildRenderObjectWidget {
|
||||
/// Creates an opacity transition.
|
||||
///
|
||||
/// The [opacity] argument must not be null.
|
||||
@ -527,9 +527,9 @@ class FadeTransition extends StatelessWidget {
|
||||
Key? key,
|
||||
required this.opacity,
|
||||
this.alwaysIncludeSemantics = false,
|
||||
this.child,
|
||||
Widget? child,
|
||||
}) : assert(opacity != null),
|
||||
super(key: key);
|
||||
super(key: key, child: child);
|
||||
|
||||
/// The animation that controls the opacity of the child.
|
||||
///
|
||||
@ -549,44 +549,6 @@ class FadeTransition extends StatelessWidget {
|
||||
/// would otherwise contribute relevant semantics.
|
||||
final bool alwaysIncludeSemantics;
|
||||
|
||||
/// The widget below this widget in the tree.
|
||||
///
|
||||
/// {@macro flutter.widgets.ProxyWidget.child}
|
||||
final Widget? child;
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return _FadeTransition(
|
||||
opacity: opacity,
|
||||
alwaysIncludeSemantics: alwaysIncludeSemantics,
|
||||
child: RepaintBoundary(
|
||||
child: child,
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
@override
|
||||
void debugFillProperties(DiagnosticPropertiesBuilder properties) {
|
||||
super.debugFillProperties(properties);
|
||||
properties.add(DiagnosticsProperty<Animation<double>>('opacity', opacity));
|
||||
properties.add(FlagProperty('alwaysIncludeSemantics', value: alwaysIncludeSemantics, ifTrue: 'alwaysIncludeSemantics'));
|
||||
}
|
||||
}
|
||||
|
||||
/// The backing implementation of a [FadeTransition].
|
||||
class _FadeTransition extends SingleChildRenderObjectWidget {
|
||||
const _FadeTransition({
|
||||
Key? key,
|
||||
required this.opacity,
|
||||
this.alwaysIncludeSemantics = false,
|
||||
Widget? child,
|
||||
}) : assert(opacity != null),
|
||||
super(key: key, child: child);
|
||||
|
||||
final Animation<double> opacity;
|
||||
|
||||
final bool alwaysIncludeSemantics;
|
||||
|
||||
@override
|
||||
RenderAnimatedOpacity createRenderObject(BuildContext context) {
|
||||
return RenderAnimatedOpacity(
|
||||
@ -601,6 +563,13 @@ class _FadeTransition extends SingleChildRenderObjectWidget {
|
||||
..opacity = opacity
|
||||
..alwaysIncludeSemantics = alwaysIncludeSemantics;
|
||||
}
|
||||
|
||||
@override
|
||||
void debugFillProperties(DiagnosticPropertiesBuilder properties) {
|
||||
super.debugFillProperties(properties);
|
||||
properties.add(DiagnosticsProperty<Animation<double>>('opacity', opacity));
|
||||
properties.add(FlagProperty('alwaysIncludeSemantics', value: alwaysIncludeSemantics, ifTrue: 'alwaysIncludeSemantics'));
|
||||
}
|
||||
}
|
||||
|
||||
/// Animates the opacity of a sliver widget.
|
||||
|
||||
@ -951,7 +951,7 @@ void main() {
|
||||
);
|
||||
|
||||
await expectLater(
|
||||
find.byType(RepaintBoundary).first,
|
||||
find.byType(RepaintBoundary).last,
|
||||
matchesGoldenFile('nav_bar_test.large_title.png'),
|
||||
);
|
||||
},
|
||||
|
||||
@ -128,8 +128,6 @@ void main() {
|
||||
' RepaintBoundary-[GlobalKey#00000]\n'
|
||||
' IgnorePointer\n'
|
||||
' AnimatedBuilder\n'
|
||||
' RepaintBoundary\n'
|
||||
' _FadeTransition\n'
|
||||
' FadeTransition\n'
|
||||
' FractionalTranslation\n'
|
||||
' SlideTransition\n'
|
||||
@ -304,8 +302,6 @@ void main() {
|
||||
' MediaQuery\n'
|
||||
' Padding\n'
|
||||
' SafeArea\n'
|
||||
' RepaintBoundary\n'
|
||||
' _FadeTransition\n'
|
||||
' FadeTransition\n'
|
||||
' IconTheme\n'
|
||||
' IconTheme\n'
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user