Идея заключается в том, что вам нужно использовать метод 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,
),
],
),
],
),