当我尝试从“ examples / flutter_gallery”切换时,可以点击它来更改值。
bool switchOn = false;
void _onSwitchChanged(bool value) {
switchOn = false;
}
body: ListView(
children: <Widget>[
Row(
children: <Widget>[
Switch(
onChanged: _onSwitchChanged,
value: switchOn,
),
],
),
],
),
答案 0 :(得分:0)
这个想法是,每当要刷新屏幕时,都需要使用setState()
方法。因此,实际上switchOn
的值实际上是在变化,但是由于您没有使用setState()
,所以未在屏幕上呈现此更改,您可以详细了解here
bool switchOn = false;
void _onSwitchChanged(bool value) {
setState(() {
switchOn = false;
});
}
body: ListView(
children: <Widget>[
Row(
children: <Widget>[
Switch(
onChanged: _onSwitchChanged,
value: switchOn,
),
],
),
],
),
答案 1 :(得分:0)
您应该更新状态以更改值
void _onSwitchChanged(bool value) {
setState((){
switchOn = false;
});
}
答案 2 :(得分:0)
在为网络构建时,我也遇到了同样的问题,很难切换开关,您需要某种方式来点按它来更新它,以便您可以在开关上使用AbsorbPointer
并通过{{1 }或构建这样的自定义开关(使代码变面糊):
GestureDetector