Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/flutter/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Flutter 颤振姿态检测器isn';他根本不工作_Flutter - Fatal编程技术网

Flutter 颤振姿态检测器isn';他根本不工作

Flutter 颤振姿态检测器isn';他根本不工作,flutter,Flutter,我试图使一个文本小部件缩放与GestureDetector,但它根本不工作,我没有得到任何错误,甚至 注意,我尝试了很多方法,比如用手势检测器包裹脚手架本身 main.dart import 'package:flutter/material.dart'; import 'package:testy/zoomable.dart'; void main() => runApp( MaterialApp( debugShowCheckedModeBanner: false,

我试图使一个文本小部件缩放与GestureDetector,但它根本不工作,我没有得到任何错误,甚至

注意,我尝试了很多方法,比如用手势检测器包裹脚手架本身

main.dart

import 'package:flutter/material.dart';
import 'package:testy/zoomable.dart';

void main() => runApp(
  MaterialApp(
    debugShowCheckedModeBanner: false,
    title: 'Testy',
    theme: ThemeData(
      primarySwatch: Colors.green,
      primaryColor: Colors.green
    ),
    home: Zoomable(),
  )
);
import 'package:flutter/material.dart';

class Zoomable extends StatefulWidget {
  @override
  _ZoomableState createState() => _ZoomableState();
}

class _ZoomableState extends State<Zoomable> {
  @override
  Widget build(BuildContext context) {
    double size = 70;
    return Scaffold(
      appBar: AppBar(
        title: Text('Zoomable'),
      ),
      body: GestureDetector(
        onScaleStart: (details) {},
        onScaleUpdate: (ScaleUpdateDetails details) {
          if (size < 150.0 && size > 50.0) {
            setState(() {
              size = size + details.scale;
            });
          }
        },
        onTap: () {
          if (size < 150.0 && size > 50.0) {
            setState(() {
              size = size + 1;
            });
          }
        },
        child: Text(
          'Zoomable',
          style: TextStyle(fontSize: size),
        ),
      ),
    );
  }
}
可缩放。省道

import 'package:flutter/material.dart';
import 'package:testy/zoomable.dart';

void main() => runApp(
  MaterialApp(
    debugShowCheckedModeBanner: false,
    title: 'Testy',
    theme: ThemeData(
      primarySwatch: Colors.green,
      primaryColor: Colors.green
    ),
    home: Zoomable(),
  )
);
import 'package:flutter/material.dart';

class Zoomable extends StatefulWidget {
  @override
  _ZoomableState createState() => _ZoomableState();
}

class _ZoomableState extends State<Zoomable> {
  @override
  Widget build(BuildContext context) {
    double size = 70;
    return Scaffold(
      appBar: AppBar(
        title: Text('Zoomable'),
      ),
      body: GestureDetector(
        onScaleStart: (details) {},
        onScaleUpdate: (ScaleUpdateDetails details) {
          if (size < 150.0 && size > 50.0) {
            setState(() {
              size = size + details.scale;
            });
          }
        },
        onTap: () {
          if (size < 150.0 && size > 50.0) {
            setState(() {
              size = size + 1;
            });
          }
        },
        child: Text(
          'Zoomable',
          style: TextStyle(fontSize: size),
        ),
      ),
    );
  }
}
导入“包装:颤振/材料.省道”;
类可缩放扩展StatefulWidget{
@凌驾
_ZoomableState createState();
}
类_ZoomableState扩展状态{
@凌驾
小部件构建(构建上下文){
双倍尺寸=70;
返回脚手架(
appBar:appBar(
标题:文本(“可缩放”),
),
正文:手势检测器(
onScaleStart:(详细信息){},
onScaleUpdate:(缩放更新详细信息){
如果(尺寸<150.0&&size>50.0){
设置状态(){
尺寸=尺寸+细节。比例;
});
}
},
onTap:(){
如果(尺寸<150.0&&size>50.0){
设置状态(){
尺寸=尺寸+1;
});
}
},
子:文本(
“可缩放”,
样式:文本样式(fontSize:size),
),
),
);
}
}

这是因为您正在呼叫
双倍大小=70
build()函数中。调用
setState()
时,将调用
build()
函数,并将大小设置回70。只需将
size
移动到
build()
函数的外部,它就会工作