我在中有一个Radio
按钮ListTile
。当ListTile
被点击时,我改变Radio
的价值。我不希望收音机可点击,所以我不提供onChanged
回调:
ListTile(
onTap: () => onChanged(template.id),
leading: Radio(
value: template.id,
groupValue: checkedId,
)
...
)
这样,Radio
变成“非活动”,并将其颜色更改为灰色。该Radio
有一个activeColor
财产,但不为无效。
如果我为Radio
的onChanged
属性提供了一个伪函数-它变为活动状态,但问题是我不希望它可被单击,我只希望该ListTile
按钮可被单击(原因是-我想取消选中Radio
)
另外,我只想更改那些特定Radio
按钮的无效颜色,而不是整个应用程序。
当前结果:
结果如下onChange
(单击时无法取消选中广播):
Radio
用途unselectedWidgetColor
的ThemeData
。如果您只需要为特定屏幕上的几个收音机更改它,请将它们包装在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
,则将其解释为已禁用(这适用于许多默认的材质小部件)。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句