gpt4 book ai didi

Flutter GestureDetector 根本不工作

转载 作者:IT王子 更新时间:2023-10-29 07:20:49 26 4
gpt4 key购买 nike

我正在尝试使用 GestureDetector 使文本小部件可缩放,但它根本不起作用,我什至没有收到任何错误...

请注意,我尝试了很多事情,比如用 GestureDetector 包裹脚手架本身......

ma​​in.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),
),
),
);
}
}

最佳答案

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

关于Flutter GestureDetector 根本不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55727797/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com