gradient_text.dart 771 B

123456789101112131415161718192021222324252627282930313233343536
  1. import 'package:flutter/cupertino.dart';
  2. /// 渐变色文字
  3. class GradientText extends StatelessWidget {
  4. /// 渐变颜色参数
  5. final List<Color> colors;
  6. final AlignmentGeometry begin;
  7. final AlignmentGeometry end;
  8. final Widget child;
  9. const GradientText({
  10. super.key,
  11. required this.colors,
  12. this.begin = Alignment.centerLeft,
  13. this.end = Alignment.centerRight,
  14. required this.child,
  15. });
  16. @override
  17. Widget build(BuildContext context) {
  18. return ShaderMask(
  19. // 线性渐变
  20. shaderCallback:
  21. (bounds) => LinearGradient(
  22. colors: colors,
  23. begin: begin,
  24. end: end,
  25. ).createShader(bounds),
  26. blendMode: BlendMode.srcIn,
  27. // 内容
  28. child: child,
  29. );
  30. }
  31. }