gpt4 book ai didi

user-interface - 如何在 Flutter 中更改 radio 的非事件颜色?

转载 作者:行者123 更新时间:2023-12-03 03:07:29 26 4
gpt4 key购买 nike

我有一个 Radio ListTile 中的按钮.当ListTile被点击,我更改Radio的值(value)。我不希望 radio 可点击,所以我不提供 onChanged打回来:

ListTile(
onTap: () => onChanged(template.id),
leading: Radio(
value: template.id,
groupValue: checkedId,
)
...
)

这样做, Radio变为“非事件”并将其颜色更改为灰色。 Radio有一个 activeColor属性,但不适用于非事件。

如果我向 Radio 提供一个虚拟函数的 onChanged属性 - 它变为事件状态,但问题是我不希望它是可点击的,我想要 ListTile只能点击(原因是 - 我希望能够取消选中 Radio )

另外,我只想更改那些特定 Radio 的非事件颜色按钮,而不是整个应用程序。

当前结果:

Demo 1

结果为 onChange (点击 radio 时我无法取消选中它):

Demo 2

最佳答案

Radio使用 unselectedWidgetColorThemeData .如果您只需要为特定屏幕上的几个 radio 更改它,请将它们包装在 Theme 中。小部件覆盖颜色:

Theme(
data: Theme.of(context).copyWith(
unselectedWidgetColor: Colors.red,
disabledColor: Colors.blue
),
child: Column(
children: <Widget>[
ListTile(
onTap: () => setState(() => value = 0),
leading: Radio(
value: 0,
groupValue: value,
onChanged: (v) => setState(() => value = v),
)
),
ListTile(
onTap: () => setState(() => value = 1),
leading: Radio(
value: 1,
groupValue: value,
onChanged: (v) => setState(() => value = v),
)
),
],
),
)

如果 onChanged 没有传入回调至 Radio ,它被解释为禁用(这适用于许多默认 Material 小部件)。

关于user-interface - 如何在 Flutter 中更改 radio 的非事件颜色?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59194984/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com