
The ShaderMask widget enables rendering its child with an alpha channel defined by a Shader. For example if the Shader was a linear gradient in alpha then the component behind the ShaderMask's child would appear wherever the gradient's alpha value was not fully opaque. The card_collection.dart example demonstrates this. Select the "Let the sun shine" checkbox in the app's drawer.
28 lines
671 B
Dart
28 lines
671 B
Dart
import 'dart:sky' as sky;
|
|
|
|
import 'package:sky/painting.dart';
|
|
import 'package:sky/widgets.dart';
|
|
import 'package:test/test.dart';
|
|
|
|
import 'widget_tester.dart';
|
|
|
|
sky.Shader createShader(Rect bounds) {
|
|
return new LinearGradient(
|
|
begin: Point.origin,
|
|
end: new Point(0.0, bounds.height),
|
|
colors: [const Color(0x00FFFFFF), const Color(0xFFFFFFFF)],
|
|
stops: [0.1, 0.35]
|
|
)
|
|
.createShader();
|
|
}
|
|
|
|
|
|
void main() {
|
|
test('Can be constructed', () {
|
|
testWidgets((WidgetTester tester) {
|
|
Widget child = new Container(width: 100.0, height: 100.0);
|
|
tester.pumpWidget(new ShaderMask(child: child, shaderCallback: createShader));
|
|
});
|
|
});
|
|
}
|