[英]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.