Состояние переключателя не меняется при нажатии - PullRequest
0 голосов
/ 24 апреля 2020

Я хочу изменить состояние переключателя при нажатии, но оно не меняется. Состояние изменяется только при перетаскивании кнопки тайла переключения.

                    padding: const EdgeInsets.only(
                        top: 12.0, bottom: 12.0, right: 8.0),
                    child: Column(
                      mainAxisSize: MainAxisSize.min,
                      mainAxisAlignment: MainAxisAlignment.center,
                      children: <Widget>[
                        Switch(
                            value: switchValue,
                            onChanged: (bool value) {
                              setState(() {
                                switchValue = value;
                              });
                            }),
                        Text(
                          "Check-in",
                          style: TextStyle(fontSize: 13, color: Colors.grey),
                        )
                      ],
                    ),
                  )```

1 Ответ

0 голосов
/ 24 апреля 2020

Вам нужно переместить setState () за пределы ползунка и перед сборкой (как показано ниже), чтобы заставить его работать

  bool switchValue = false;
  void _changeSwitch(bool value) {
    setState(() {
      switchValue = !switchValue;
    });
  }

  @override
  Widget build(BuildContext context) {

...

 Switch(value: switchValue, onChanged: _changeSwitch),

Подробнее об использовании setState (), если вы заинтересованы: https://medium.com/flutter-community/flutter-state-management-setstate-fn-is-the-easiest-and-the-most-powerful-44703c97f035

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...