根据滑块值设置文本值

问题描述 投票:2回答:1

设置文本元素基础上滑块值

我想一个文本元素设置为通过滑块设定的表情符号的说明。我有一个滑块设置5种不同的表情符号,因此值是0-4,因为表情符号的列表是一个数组。基于我目前的代码的文本没有corrctly更新。

 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,
                    ),   
dart visual-studio-code flutter
1个回答
1
投票

更改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(() {

              });
            },
© www.soinside.com 2019 - 2024. All rights reserved.