首页 > 解决方案 > 颤振自定义滑块值不等周期

问题描述

Slider我可以在课堂上使用滑块

  Slider(
    value: _currentLenValue,
    min: 1,
    max: 8,
    divisions: 8,
    label: _currentLenValue.round().toString(),
    onChanged: (double value) {
      setState(() {
        _currentLenValue = value;
      });
    },
  ),

这使滑块具有价值

[1,2,3,4,5,6,7,8]

但是我想设置滑块的自定义值,而不是相等的周期。

[0,4,8,16,24,32,128,512]

有可能吗,或者我该怎么做?

标签: flutterdart

解决方案


您可以更改获取滑块标签的函数:

  Slider(
    value: _currentLenValue,
    min: 1,
    max: 8,
    divisions: 8,
    label: [0,4,8,16,24,32,128,512][_currentLenValue.round()].toString(),
    onChanged: (double value) {
      setState(() {
        _currentLenValue = value;
      });
    },
  ),

或者更改 SetState 中的值:

  Slider(
    value: _currentLenValue,
    min: 1,
    max: 8,
    divisions: 8,
    label: _currentLenValue.toString(),
    onChanged: (double value) {
      setState(() {
        _currentLenValue = [0,4,8,16,24,32,128,512][value.round()];
      });
    },
  ),

当然,索引只有在分区大小一致的情况下才会顺利进行,因此四舍五入总是会产生正确的索引。


推荐阅读