首页 > 解决方案 > 为什么当我点击它时,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,
         ),
      ],
    ),
  ],
),       

标签: user-interfaceflutter

解决方案


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,
                    ),
                  ],
                ),
              ],
            ),

推荐阅读