阅读 189

Flutter Widget 之LinearGradient

纯色非常适合设置应用程序的样式,但有时你想要更多的流行元素及多种不同的颜色,这就是LinearGradient的用武之气。

虽然技术上这不是小部件,但LinearGradient仍然很酷。

ezgif.com-gif-maker (2).gif

你可以i与任何具有装饰的Container的小部件一起使用。

例如Container使用LinearGradient类以创建在颜色之间转换的渐变。

Container(     decoration: const BoxDecoration(         gradient: LinearGradient()     ) ) 复制代码

首先使用两种颜色

LinearGradient(     colors: [         Color(0xff027DFD),         Color(0xff4100E0),     ] ) 复制代码

image.png 或使用三种颜色

LinearGradient(     colors: [         Color(0xff027DFD),         Color(0xff4100E0),         Color(0xff1CDAC5),     ] ) 复制代码

image.png

或使用四种颜色

LinearGradient(     colors: [         Color(0xff027DFD),         Color(0xff4100E0),         Color(0xff1CDAC5),         Color(0xffF2DD22),     ] ) 复制代码

image.png

在默认情况下,渐变中的所有颜色都是均匀分布的

LinearGradient(     colors: [...], ) 复制代码

image.png

但是可以通过停靠点列表准确定义每种颜色显示多少

LinearGradient(     colors: [...],     stops: [0.1, 0.20, 0.50, 0.75] ) 复制代码

image.png 还可以准确指定渐变开始和结束的位置

LinearGradient(     colors: [...],     begin: Alignment.topLeft,     end: Alignment.bottomRight, ) 复制代码

image.png 最重要的是,通过应用变换来操纵渐变

LinearGradient(     colors: [...],     begin: Alignment.topLeft,     end: Alignment.bottomRight,     transform: GradientRotation(math.pi / 4) ) 复制代码

image.png

用它来设计SliverAppBar之类的小部件

AliverAppBar(     title: Text(widget.title),     flexibleSpace: FlexibleSpaceBar(         background: Container(             decoration: BoxDecoration(                 gradient: MyLinearGradient(),             ),         ).     ), ) 复制代码

image.png

或者将其包装在ShaderMask中的一些文本

ShaderMask(     shaderCallback: (bounds) =>          LinearGradient(             ...         ).createShader(             bounds,         ),     child: const Text(         'Hello Flutter World!,         style: TextStyle(             color: Colors.white,             fontSize: 48,             fontWeight: FontWeight.bold,         ),     ), ), 复制代码

image.png

如果想了解有关LinearGradient的内容,或者关于Flutter的其他功能


作者:程序员界的小学生
链接:https://juejin.cn/post/7170190767980281870

文章分类
代码人生
版权声明:本站是系统测试站点,无实际运营。本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 XXXXXXo@163.com 举报,一经查实,本站将立刻删除。
相关推荐