RangeSlider 上 的 Flutter 范围 标签 不 工作

ttygqcqt  于 2022-11-17  发布在  Flutter
关注(0)|答案(2)|浏览(181)

我正在尝试让基本的RangeSlider与标签一起工作,显示标签的开始和结束范围。下面是你能做的最简单的...一个包含滑块的容器。不管什么原因,标签没有显示?我看过其他的例子,这应该是微不足道的,但是不能弄清楚为什么它没有显示标签?这可能是一个bug吗?

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(),
);

}
更新:解决了这个问题,不确定它是否是默认的,但我需要指定一个SliderTheme,然后在sliderTheme中,提供SlideThemeData并将showvalueindicator设置为showvalueIndactor.always。然后它开始出现。

8ftvxx2r

8ftvxx2r1#

以下是您如何实现相同的目标

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;
        });
      },
    ),
);

Here _values是在State类中定义的RangeValues,如下所示

class _FilterScreenState extends State<FilterScreen>{
      RangeValues _values = RangeValues(100, 900);
}
4nkexdtk

4nkexdtk2#

需要为其设置divisions

RangeSlider(
                values: RangeValues(start, end),
                max: maxAge.toDouble(),
                min: minAge.toDouble(),
                activeColor: Cl.red,
                inactiveColor: Cl.gray_4,
                divisions: maxAge - minAge,
                labels: const RangeLabels('Age Start', 'Age End'),
                onChanged: onRangeChanged,
              ),

相关问题