user-interface - 为什么当我点击它时,Flutter 中的 Switch 不会改变值,而只是在拖动时?
问题描述
当我尝试从示例/flutter_gallery 切换时,我可以点击它来更改值。
bool switchOn = false;
void _onSwitchChanged(bool value) {
switchOn = false;
}
body:
ListView(
children: <Widget>[
Row(
children: <Widget>[
Switch(
onChanged: _onSwitchChanged,
value: switchOn,
),
],
),
],
),
解决方案
setState()
这个想法是,每当您希望屏幕刷新时,您都需要使用方法。因此,实际上 的值switchOn
实际上正在发生变化,但是由于您没有使用此更改,因此不会在屏幕上呈现此更改您可以在此处setState()
阅读有关它的更多信息
bool switchOn = false;
void _onSwitchChanged(bool value) {
setState(() {
switchOn = false;
});
}
body: ListView(
children: <Widget>[
Row(
children: <Widget>[
Switch(
onChanged: _onSwitchChanged,
value: switchOn,
),
],
),
],
),
推荐阅读
- python-3.x - PyMongo:如何从光标中读取前 n 个项目?
- python - 熊猫石斑鱼“累积” sum()
- c - 要求用户重新运行程序或退出 C
- clojure - clojure data.xml 强制评估惰性 xml 树
- azure - 如果 Azure DevOps 部署到 Azure 应用服务,应用服务不会运行
- python - 使用多列中的大多数获取语言检测
- c++ - Bluez Mesh Api:配置节点后要做什么?
- html - HTML - 使用 flexbox 在表格行中定位页脚元素
- r - 通过坐标将行和列分配给数据框中的点
- dialogflow-cx - DialogFlow CX,有没有办法重命名起始节点?