我正在尝试使基本的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。然后它开始出现。
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);
}