gpt4 book ai didi

dart - Flutter GestureDetector : How to pinch in/out or zoom in/out Text using two fingers?

转载 作者:行者123 更新时间:2023-12-03 02:41:00 25 4
gpt4 key购买 nike

我正在创建一个文本字段,例如Text或RichText。之后,我想使用捏放大/缩小文本的大小。现在,我尝试实现GestureDetector,但它也可以用一根手指放大/缩小。而且,目标锁定检测确实很困难。有时会卡住。我添加了一个视频,该视频显示捏后何时卡住并突然变大。第二个视频是这样的情况:仅当我用一根手指点击文本并移至左上角时,图像才会放大。理想的实现是检测捏和放大/缩小所有文本区域。当我仅使用一根手指时,请禁用缩放功能。您能给我一些提示,链接或代码如何解决或在哪里找到解决方案?


body: GestureDetector(
onScaleUpdate: (details) {
setState(() {
_textSize =
_initTextSize + (_initTextSize * (details.scale * .35));
});
},
onScaleEnd: (ScaleEndDetails details) {
setState(() {
_initTextSize = _textSize;
});
},
child: Center(
child: SizedBox(
height: _textSize,
child: FittedBox(
child: Text("Test"),
),
))),

最佳答案

在具有这些配置的有状态小部件中

double _scaleFactor = 1.0;
double _baseScaleFactor = 1.0;
并仅在更新时使用 setState,并在 scaleFactortextScaleFactor属性上使用 RichText
缩放开始时,只有一个setState可以重建小部件并存储初始因子
GestureDetector(
onScaleStart: (details) {
_baseScaleFactor = _scaleFactor;
},
onScaleUpdate: (details) {
setState(() {
_scaleFactor = _baseScaleFactor * details.scale;
});
},
child: Container(
height: MediaQuery.of(context).size.height,
width: MediaQuery.of(context).size.width,
color: Colors.red,
child: Center(
child: Text(
'Test',
textScaleFactor: _scaleFactor,
),
),
),
);
我输入的高度和宽度只是为了扩展和模拟手势检测器的区域。

关于dart - Flutter GestureDetector : How to pinch in/out or zoom in/out Text using two fingers?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55440184/

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