在flutter中提供了渐变色的组件,但前提是必须使用Container,具体使用方法见下方:
import 'package:flutter/material.dart';
class JianBianColor extends StatefulWidget {
@override
_JianBianColorState createState() => _JianBianColorState();
}
class _JianBianColorState extends State<JianBianColor> {
@override
Widget build(BuildContext context) {
return Scaffold(
backgroundColor: Colors.white,
appBar: AppBar(
title: Text('渐变色的设置'),
),
body: SafeArea(
child: Column(
children: <Widget>[
Container(
margin: EdgeInsets.only(top: 20),
child: Center(
child: ClipRRect(
borderRadius: BorderRadius.circular(10),
child: Container(
decoration: BoxDecoration(
gradient: LinearGradient(
colors: [
Colors.red,
Colors.orange,
],
begin: Alignment.topCenter,
end: Alignment.bottomCenter,
)
),
width: 300,
height: 100,
)
),
),
),
Container(
margin: EdgeInsets.only(top: 20),
child: Center(
child: ClipRRect(
borderRadius: BorderRadius.circular(10),
child: Container(
decoration: BoxDecoration(
gradient: LinearGradient(
colors: [
Colors.red,
Colors.orange,
Colors.yellow,
],
begin: Alignment.topLeft,
end: Alignment.bottomRight,
)
),
width: 300,
height: 100,
)
),
),
),
Container(
margin: EdgeInsets.only(top: 20),
child: Center(
child: ClipRRect(
borderRadius: BorderRadius.circular(10),
child: Container(
decoration: BoxDecoration(
gradient: LinearGradient(
colors: [
Colors.red,
Colors.orange,
Colors.yellow,
Colors.blue,
],
begin: Alignment.bottomLeft,
end: Alignment.bottomRight,
)
),
width: 300,
height: 100,
)
),
),
),
Container(
margin: EdgeInsets.only(top: 20),
child: Center(
child: ClipRRect(
borderRadius: BorderRadius.circular(10),
child: Container(
decoration: BoxDecoration(
gradient: LinearGradient(
colors: [
Colors.red,
Colors.orange,
Colors.yellow,
Colors.green,
Colors.cyan
],
begin: Alignment.topRight,
end: Alignment.bottomLeft,
)
),
width: 300,
height: 100,
)
),
),
),
Container(
margin: EdgeInsets.only(top: 20),
child: Center(
child: ClipRRect(
borderRadius: BorderRadius.circular(10),
child: Container(
decoration: BoxDecoration(
gradient: LinearGradient(
colors: [
Colors.red,
Colors.orange,
Colors.yellow,
Colors.green,
Colors.cyan,
Colors.blue,
Colors.purple
],
begin: Alignment.topCenter,
end: Alignment.bottomCenter,
)
),
width: 300,
height: 100,
)
),
),
),
],
),
),
);
}
}
值得一提的是,当使用了decoration来设置渐变色的时候,color属性是绝对不能使用的哦,会冲突的,代码不难,不做过多用法的说明了。