Flutter 使用手势检测器更改颤振值,向右或向左滑动
在颤振应用中,我将简单变量设置为Flutter 使用手势检测器更改颤振值,向右或向左滑动,flutter,Flutter,在颤振应用中,我将简单变量设置为currentValue,该变量值应介于0.0和1之间,通过手势和向右或向左滑动,我想更改currentValue的该值 考虑到变量的最新值,向右滑动应为“加”,向左滑动应为“减”,这意味着,例如: swipe to right => 0.0, 0.1, 0.2, 0.3, 0.4 ... swipe to left => 0.5, 0.4, 0.3, 0.2, 0.1 ... class MyClass扩展StatefulWidget{ @凌
currentValue
,该变量值应介于0.0
和1
之间,通过手势和向右或向左滑动,我想更改currentValue
的该值
考虑到变量的最新值,向右滑动应为“加”,向左滑动应为“减”,这意味着,例如:
swipe to right => 0.0, 0.1, 0.2, 0.3, 0.4 ...
swipe to left => 0.5, 0.4, 0.3, 0.2, 0.1 ...
class MyClass扩展StatefulWidget{
@凌驾
_MyClassState createState()=>\u MyClassState();
}
类MyClassState扩展了状态{
双重价值;
@凌驾
void initState(){
数值=0.0;
super.initState();
}
@凌驾
小部件构建(构建上下文){
返回脚手架(
正文:专栏(
儿童:[
展开(子项:文本('value=$value')),
扩大(
子:容器(
颜色:颜色,红色,
儿童:手势检测器(
onPanUpdate:(DragUpdate详细信息){
如果(详细信息.增量dx>0){
打印(“右击”);
//右滚动
//增量计数器
设置状态(){
数值+=0.1;
});
}
else if(details.delta.dx)我如何计算dx并将其转换为double?你为什么要这样做?你说向左滑动=-0.1,向右滑动=+0.1我想通过向左或向右滑动来更改变量值,考虑到0.0和1之间的值,我不知道如何计算dx并将其转换为我想要的值
class MyClass extends StatefulWidget {
@override
_MyClassState createState() => _MyClassState();
}
class _MyClassState extends State<MyClass> {
double value ;
@override
void initState() {
value = 0.0;
super.initState();
}
@override
Widget build(BuildContext context) {
return Scaffold(
body: Column(
children: <Widget>[
Expanded(child: Text('value = $value')),
Expanded(
child: Container(
color: Colors.red,
child: GestureDetector(
onPanUpdate:(DragUpdateDetails details){
if(details.delta.dx>0){
print('right swipe');
//right scroll
//increment counter
setState(() {
value+=0.1;
});
}
else if(details.delta.dx<0){
print('left swipe');
//left scroll
//decrement counter
setState(() {
value-=0.1;
});
}
},
),
),
)
],
),
);
}
}