dart - 根据 slider 值设置文本值

标签 dart visual-studio-code flutter

根据 slider 值设置文本元素

我正在尝试将文本元素设置为由 slider 设置的表情符号的描述。我在 slider 上设置了 5 个不同的表情符号,因此值是 0-4,因为表情符号列表是一个数组。根据我当前的代码,文本未正确更新。

 const _emojis = ['😃','\u{1F928}','\u{1F610}','\u{1F612}','😞'];


            child: Slider(
                      value: _value,
                     // label: _emojis[_value.toInt()],
                      min: 0.0,
                      max: 4.0,
                      divisions: 4,
                      onChangeStart: (double value) {
                        print('Start value is ' + value.toString());                         
                      },
                      onChangeEnd: (double value) {
                        print('Finish value is ' + value.toString());
                        if(value.toString() == '0.0'){
                        return  _emotionalStatus = 'Happy';
                        }
                         if(value.toString() == '1.0'){
                        return  _emotionalStatus = 'Optimistic';
                        }
                          if(value.toString() == '2.0'){
                        return  _emotionalStatus = 'Neutral';
                        }
                          if(value.toString() == '3.0'){
                        return  _emotionalStatus = 'Pessimistic';
                        }
                          if(value.toString() == '4.0'){
                        return  _emotionalStatus = 'Sad';
                        }
                      },
                      onChanged: (double value) {
                        setState(() {
                          _value = value;
                        });
                      },
                      activeColor: Colors.white,
                      inactiveColor: Colors.white,
                    ),   

最佳答案

改变你的onChangeEnd方法,你不需要返回值,只要在你的条件之后调用setState:

     onChangeEnd: (double value) {
              print('Finish value is ' + value.toString());
              if (value.toString() == '0.0') {
                 _emotionalStatus = 'Happy';
              }
              if (value.toString() == '1.0') {
                 _emotionalStatus = 'Optimistic';
              }
              if (value.toString() == '2.0') {
                 _emotionalStatus = 'Neutral';
              }
              if (value.toString() == '3.0') {
                 _emotionalStatus = 'Pessimistic';
              }
              if (value.toString() == '4.0') {
                 _emotionalStatus = 'Sad';
              }
              setState(() {

              });
            },

关于dart - 根据 slider 值设置文本值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54497498/

相关文章:

file - Dart 路径依赖项不起作用(跨多个项目)

dart - 在容器中包装文本

visual-studio-code - 如何在Visual Studio代码中保存时保持代码折叠

dart - 有没有人设法从谷歌登录 (Flutter) 获取 id token

firebase - FirabaseAuth无法在Flutter中捕获异常

dart - json字符串转换问题

php - 带有 Xdebug 的 VS Code 不显示完整的 PHP 变量值

angular - Visual Studio Code 无法解析 Angular tsconfig 路径

flutter - 如何修复在Dart中返回 'null'的 setter/getter ?

dart - flutter 对齐按钮到抽屉底部