RangeSlider上的Flutter RangeLabels不起作用

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

我正在尝试使基本的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(),
);

}

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

flutter flutter-layout
1个回答
0
投票
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; }); }, ), );

这里的_values是像这样在State类中定义的RangeValues

     class _FilterScreenState extends State<FilterScreen>{
      RangeValues _values = RangeValues(100, 900);
}
© www.soinside.com 2019 - 2024. All rights reserved.