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