Если я правильно понял ваш вопрос, вот пример двух цветовых тонов Icon
& Text
.
Вы можете поиграть с цветом, радиусом и другими параметрами, чтобы соответствовать вашим потребностям.
body: Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
ShaderMask(
blendMode: BlendMode.srcATop,
shaderCallback: (Rect bounds) {
return RadialGradient(
center: Alignment.topLeft,
radius: 1.0,
colors: <Color>[Colors.red, Colors.cyanAccent],
tileMode: TileMode.mirror,
).createShader(bounds);
},
child: Text(
'Two Tone Color Icon & Text!',
style: TextStyle(fontSize: 22.0),
),
),
SizedBox(
height: 10.0,
),
ShaderMask(
blendMode: BlendMode.srcATop,
shaderCallback: (Rect bounds) {
return RadialGradient(
center: Alignment.center,
radius: 1.0,
colors: <Color>[
Colors.greenAccent[200],
Colors.blueAccent[200]
],
tileMode: TileMode.repeated,
).createShader(bounds);
},
child: Icon(
Icons.dashboard,
size: 32.0,
),
),
],
),
),
Выход: