如何禁用颤振开关
Posted
技术标签:
【中文标题】如何禁用颤振开关【英文标题】:How can I disabled flutter switch 【发布时间】:2021-03-31 11:53:47 【问题描述】:在我的帮助屏幕中,我有这个开关,其目的是什么都不做,只是按原样显示。
但是我现在遇到的问题,即使它没有做任何事情,用户也可以拖动开关,所以我试图弄清楚如何禁用它,以便没有人可以拖动开关按钮.
return Container(
child: Card(
color: Theme.of(context).primaryColor,
margin: EdgeInsets.only(bottom: 30, top: 10),
child: ListTile(
title: Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: <Widget>[
Text("Dark Theme",
style: TextStyle(color: Theme.of(context).accentColor)),
Switch(
value: true,
onChanged: (value) ,
activeColor: Theme.of(context).accentColor),
Text("Light Theme", style: TextStyle())
],
),
),
),
);
【问题讨论】:
【参考方案1】:要禁用您的 Switch
,请将其 onChanged
方法编辑为 null,如下所示
Switch(
onChanged: null,
value: true,
inactiveThumbColor: Colors.tealAccent,
inactiveTrackColor: Colors.tealAccent.withOpacity(0.5),
// ...
),
【讨论】:
哦..谢谢它被禁用但结果不是我想象的那样。开关被禁用但颜色不再应用于开关,你知道我怎样才能应用浅蓝色(就像在图像中一样)并使开关仍然禁用吗?。 你也可以使用Theme.of(context).accentColor
和Theme.of(context).accentColor.withOpacity(0.5)
为例
哦,好吧...但我认为我不允许同时使用 inactiveThumbColor 和 inactiveTrackColor ,因为我遇到了错误。 (附图)你知道可能是什么原因吗?谢谢
它说未定义的名称'inactiveTrackColor'。尝试将名称更正为已定义的名称,或定义名称。
它有效!.. 非常感谢您对我的两个问题的帮助。谢谢你【参考方案2】:
如果您想要手动设置值的静态开关,请考虑使用 AbsorbPointer。它不会改变您的开关的外观,也不会禁用它。 AbsorbPointer 只是阻止用户与元素交互
【讨论】:
这应该是答案,谢谢你教我一个新的小部件。以上是关于如何禁用颤振开关的主要内容,如果未能解决你的问题,请参考以下文章