我的问题是,如何在Flutter中更改CupertinoSwitch的不活动颜色,使用普通的Switch还是很容易的,因为我们具有该属性,但是在CupertinoSwitch(iOS)上我们没有这些属性。
您可以使用ShaderMask进行一些骇人听闻的工作:
bool value = false;
@override
Widget build(BuildContext context) {
final Color activeColor = Color.fromARGB(255, 52, 199, 89);
return Scaffold(
appBar: AppBar(
title: Text(widget.title),
),
body: Center(
child: Theme(
data: ThemeData(),
child: ShaderMask(
child: CupertinoSwitch(
activeColor: activeColor,
value: value,
onChanged: (v) => setState(() => value = v),
),
shaderCallback: (r) {
return LinearGradient(
colors: value
? [activeColor, activeColor]
: [Colors.red, Colors.red],
).createShader(r);
},
),
)),
);
}
但我不推荐。我建议您在flutter存储库https://github.com/flutter/flutter/issues中打开一个问题,并在其中说明您的问题。