HTM*_*ell 5 user-interface radio-button dart flutter
我Radio在一个ListTile. 当ListTile被点击时,我改变Radio的价值。我不希望收音机可点击,所以我不提供onChanged回调:
ListTile(
onTap: () => onChanged(template.id),
leading: Radio(
value: template.id,
groupValue: checkedId,
)
...
)
Run Code Online (Sandbox Code Playgroud)
这样做后,它Radio会变得“不活动”并将其颜色更改为灰色。该Radio有一个activeColor财产,但不为无效。
如果我为Radio的onChanged属性提供了一个虚拟函数- 它会变为活动状态,但问题是我不希望它可点击,我只希望ListTile可点击(原因是 - 我希望能够取消选中Radio)
此外,我只想更改那些特定Radio按钮的非活动颜色,而不是整个应用程序。
当前结果:
结果onChange(单击时无法取消选中收音机):
Igo*_*din 26
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),
)
),
],
),
)
Run Code Online (Sandbox Code Playgroud)
如果没有回调中传递onChanged到Radio,它被解释为禁用(此作品为许多默认材料部件)。
| 归档时间: |
|
| 查看次数: |
6797 次 |
| 最近记录: |