如何在Flutter中更改CupertinoSwitch无效状态的颜色

问题描述 投票:1回答:1

我的问题是,如何在Flutter中更改CupertinoSwitch的不活动颜色,使用普通的Switch还是很容易的,因为我们具有该属性,但是在CupertinoSwitch(iOS)上我们没有这些属性。

flutter flutter-cupertino
1个回答
0
投票
不幸的是,你不能。它在switch.dart中是硬编码的

您可以使用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中打开一个问题,并在其中说明您的问题。
© www.soinside.com 2019 - 2024. All rights reserved.