Почему «Switch in Flutter» не меняет значение, когда я касаюсь его, а только при перетаскивании? - PullRequest
0 голосов
/ 04 июля 2019

Когда я пытаюсь переключиться из примеров / flutter_gallery, я могу нажать на него, чтобы изменить значение.

bool switchOn = false;

    void _onSwitchChanged(bool value) {
      switchOn = false;
    }

body: ListView(
              children: <Widget>[
                Row(
                  children: <Widget>[
                    Switch(
                      onChanged: _onSwitchChanged,
                      value: switchOn,
                    ),
                  ],
                ),
              ],
            ),

Ответы [ 2 ]

0 голосов
/ 04 июля 2019

Вы должны обновить состояние, чтобы изменить значение

void _onSwitchChanged(bool value) {
   setState((){
      switchOn = false;
   });      
}
0 голосов
/ 04 июля 2019

Идея заключается в том, что вам нужно использовать метод 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,
                    ),
                  ],
                ),
              ],
            ),
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...