繁体   English   中英

Flutter GestureDetector根本不起作用

[英]Flutter GestureDetector isn't working at all

我正在尝试使用GestureDetector缩放文本小部件,但它根本无法工作,我什至没有错误...

请注意,我尝试了很多事情,例如用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(),
  )
);

zoomable.dart

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

这是因为您正在调用double size = 70; build()函数中。 当您调用setState() ,将调用build()函数并将大小设置回70。只需将size移动到build()函数之外,它将起作用。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM