flutter - 有没有办法使用颤振检测pdf中的触摸?
问题描述
我正在使用dart pdf 库,我想在查看 pdf 时检测屏幕上的触摸。有没有办法做到这一点?为了查看 pdf 文件,我使用PDFViewerScaffold
带有创建文件路径的 a 。我尝试PDFViewerScaffold
用Listener
and包装GestureDetector
,但没有运气。到目前为止我的代码:
查看pdf文件:
class PdfViewerPage extends StatelessWidget {
final String path;
const PdfViewerPage({Key key, this.path}) : super(key: key);
@override
Widget build(BuildContext context) {
return PDFViewerScaffold(
path: path,
);
}
}
制作pdf文件:
final Document pdf = Document();
...
pdf.addPage(MultiPage(
pageFormat:
...
footer: (Context context) {
...
},
build: (Context context) => <Widget>[
...
...
任何帮助,将不胜感激!
解决方案
不久前我遇到了同样的问题,FlutterFullPdfViewer 使用本机组件并将其封装在只能通过本机代码操作的 FrameLayout(在 android 中)中。我所做的是我分叉了这个项目,并添加了我自己的实现。在 android 部分中,您有一个在 FlutterFullPdfViewerManager.java 中调用的方法:
void openPDF(String path) {
File file = new File(path);
pdfView.fromFile(file)
.enableSwipe(true)
.swipeHorizontal(false)
.enableDoubletap(true)
.defaultPage(0)
.load();
}
您可以将其更改为:
void openPDF(String path) {
File file = new File(path);
pdfView.fromFile(file)
.enableSwipe(true)
.swipeHorizontal(false)
.enableDoubletap(true)
.onTap(e-> {
if (e.getRawX() > 300) {//put your value here
//send rebuild instruction to flutter
}
.defaultPage(0)
.load();
}
或者类似的事情,您还会发现您可以在 pdfView 上做很多额外的事情,这些事情可能对您有所帮助。
推荐阅读
- java - JPA CriteriaBuilder 和本机子句
- java - 为什么我必须让 m2e 在每个项目上忽略 maven-compiler-plugin:compile 和 testCompile?
- r - 如何在动态计算列名并更改日期以进行比较的 for 循环中使用 mutate?
- javascript - 在 ipad vimeo 中禁用全屏
- python - 逐元素运算实际上执行矩阵运算
- javascript - React JS 中的 CSS 模块不起作用,我已经尝试了所有的方法,但没有解决
- python - QCheckBox 选中/取消选中 PyQt5 中另一个类的所有 QCheckboxes
- mongodb - Node Mongo API 中的搜索速度很慢?
- c# - 让 System.CommandLine 接受已编译的 lambda 作为处理程序
- javascript - 使用 fs 写入节点文件后重新请求节点文件