LinearGradientText.dart 789B

12345678910111213141516171819202122232425262728293031
  1. import 'package:flutter/widgets.dart';
  2. class LinearGradientText extends StatelessWidget {
  3. final AlignmentGeometry begin;
  4. final AlignmentGeometry end;
  5. final List<Color> colors;
  6. Widget child;
  7. LinearGradientText({
  8. Key? key,
  9. required this.colors,
  10. required this.child,
  11. this.begin = Alignment.topCenter,
  12. this.end = Alignment.bottomCenter,
  13. }) : super(key: key);
  14. Shader _linearGradient(Rect bounds) {
  15. Gradient gradient = LinearGradient(colors: colors, begin: begin, end: end);
  16. return gradient.createShader(bounds);
  17. }
  18. @override
  19. Widget build(BuildContext context) {
  20. return ShaderMask(
  21. blendMode: BlendMode.srcIn,
  22. shaderCallback: (bounds) => _linearGradient(bounds),
  23. child: child,
  24. );
  25. }
  26. }