RangeSlider 上的 Flutter RangeLabels 不起作用

mik*_*ssy 4 rangeslider dart flutter flutter-layout

我正在尝试让基本的 RangeSlider 与显示标签开始结束范围的标签一起使用。下面是您可以做的最简化的...包含滑块的容器。由于某种原因,标签没有出现?我看过其他示例,这应该是微不足道的,但无法弄清楚为什么它不显示标签?这可能是一个错误吗?

  class _TestScreenState extends State<TestScreen> {
 RangeValues _values = RangeValues(15, 30);

   @override
 Widget build(BuildContext context) {
   return Scaffold(
   appBar: AppBar(
    title: Text('Testing formatting'),
  ),
  body: Container(
    child:  RangeSlider(
          values: _values,
          min:1,
          max: 60,
          labels: RangeLabels('${_values.start.round()}', '${_values.end.round()}'),
          onChanged: (RangeValues values) {
            setState(() {
              _values = values;
            });
          },
        ),
  ),
  drawer: SideDrawer(),
);
Run Code Online (Sandbox Code Playgroud)

}

更新:弄清楚了,不确定是否是默认的,但我需要指定一个 SliderTheme,然后在 sliderTheme 内,提供 SlideThemeData 并将 showvalueindicator 设置为 showvalueIndactor.always。然后它开始出现。

B.s*_*uti 5

您可以通过以下方法实现相同的目标

SliderTheme(
    data: SliderThemeData(
      showValueIndicator: ShowValueIndicator.always
    ),
    child: RangeSlider(
      values: _values,
      min: 0,
      max: 1000,
      labels: RangeLabels('${_values.start.round()}', '${_values.end.round()}'),
      inactiveColor: Colors.grey,
      activeColor: Colors.black,
      onChanged: (RangeValues values) {
        setState(() {
          _values = values;
        });
      },
    ),
);
Run Code Online (Sandbox Code Playgroud)

这里 _values 是 State 类中定义的 RangeValues,如下所示

     class _FilterScreenState extends State<FilterScreen>{
      RangeValues _values = RangeValues(100, 900);
}
Run Code Online (Sandbox Code Playgroud)