Flutter 动态更改滑块最大值并中止拖动
有一个滑块,通常用于1-500之间的值,但偶尔会更高,并喜欢动态调整最大值。所以如果你滑到490,那么最大值将从500=>1000,然后从1000=>1500等等 我遇到的问题是,当我更改最大值时,阻力不会停止,因此当更改最大值时,滑块将立即转到最大值,这将触发最大值增加,从而使滑块再次转到最大值,等等 达到最大值后,如何强制用户重新按下滑块Flutter 动态更改滑块最大值并中止拖动,flutter,Flutter,有一个滑块,通常用于1-500之间的值,但偶尔会更高,并喜欢动态调整最大值。所以如果你滑到490,那么最大值将从500=>1000,然后从1000=>1500等等 我遇到的问题是,当我更改最大值时,阻力不会停止,因此当更改最大值时,滑块将立即转到最大值,这将触发最大值增加,从而使滑块再次转到最大值,等等 达到最大值后,如何强制用户重新按下滑块 导入“包装:颤振/材料.省道”; 导入“package:flatter/rendering.dart”; void main()=>runApp(MyA
导入“包装:颤振/材料.省道”;
导入“package:flatter/rendering.dart”;
void main()=>runApp(MyApp());
类MyApp扩展了无状态小部件{
@凌驾
小部件构建(构建上下文){
返回材料PP(
家:脚手架(
正文:MySlider(),
),
);
}
}
类MySlider扩展StatefulWidget{
MySlider({Key}):超级(Key:Key);
@凌驾
_MySliderState createState()=>\u MySliderState();
}
类_MySliderState扩展状态{
双倍最大值=500;
双值=100;
@凌驾
小部件构建(构建上下文){
如果(值>(最大值-10)){
最大+=500;
//我可以在这里中止滑块的拖动吗
//所以我必须重新按下滑块。
}
返回列(
mainAxisAlignment:mainAxisAlignment.center,
儿童:[
滑块(
onChanged:(newValue)=>setState((){
值=新值;
}),
民:1,,
马克斯:马克斯,
价值:价值,
),
文本(value.toInt().toString()),
],
);
}
}
import 'package:flutter/material.dart';
import 'package:flutter/rendering.dart';
void main() => runApp(MyApp());
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
body: MySlider(),
),
);
}
}
class MySlider extends StatefulWidget {
MySlider({Key key}) : super(key: key);
@override
_MySliderState createState() => _MySliderState();
}
class _MySliderState extends State<MySlider> {
double max = 500;
double value = 100;
@override
Widget build(BuildContext context) {
if (value > (max - 10)) {
max += 500;
// Can I abort the draging of slider here
// so I have to re-press the slider.
}
return Column(
mainAxisAlignment: MainAxisAlignment.center,
children: [
Slider(
onChanged: (newValue) => setState(() {
value = newValue;
}),
min: 1,
max: max,
value: value,
),
Text(value.toInt().toString()),
],
);
}
}