flutter - 如何在 Flutter 的 AndroidView 或 UiKitView 中检测缩放和平移手势?
问题描述
我正在使用flutter_pdfview在我的 Flutter App 中显示 PDF。在底层,PDFView 小部件根据平台使用AndroidView或UiKitView 。
我想知道用户可以在 PDF 上缩放和平移,从而获得相对于 PDF 文档的点击事件的坐标。
为此,我需要订阅 scale 和 pan 事件,以了解文档的哪一部分当前显示在屏幕上。然后我可以弄清楚用户点击的确切位置。
我试过通过我自己的ScaleGestureRecognizer
and PanGestureRecognizer
。不幸的是,onUpdate()
,onStart()
似乎从未被触发。
这是我的代码:
class PDFViewer extends StatelessWidget {
PDFViewer({this.filePath});
final String filePath;
@override
Widget build(BuildContext context) {
final scale = ScaleGestureRecognizer()
..onUpdate = (details) {
print(details.scale);
};
final pan = PanGestureRecognizer()
..onUpdate = (details) {
print(details.delta);
}
..onStart = (_) {
print('Start pan');
}
..onEnd = (_) {
print('End pan');
};
return PDFView(
filePath: filePath,
gestureRecognizers: <Factory<OneSequenceGestureRecognizer>>{
Factory<ScaleGestureRecognizer>(() => scale),
Factory<PanGestureRecognizer>(() => pan),
},
);
}
}
解决方案
推荐阅读
- xml - XSD:正则表达式我不知道为什么它无效
- python-3.x - 嗨,我是 python 3 的新手,希望在列表中计算浮点数,该列表中同时包含浮点数和字符串
- python - Numpy max 仅在对数组的第一个元素上
- windows - Laradock:docker-compose.yml 在 Windows 上是无效格式 (PORT[/PROTOCOL])
- c++ - neovim 在执行 .out 文件时自动提供输入
- c++ - 智能指针可以通过禁止自动变量更安全吗?
- reactjs - 使用 Firebase 和匿名用户设置 Stream 活动供稿的推荐方法是什么?
- php - 使用Mpdf(Laravel)生成pdf时如何使用bangla字体
- variables - (Pinescript) 将当前柱形指示器状态永久存储在变量中?
- clojure - 递归树搜索:产生具有副作用的并发工作者