flutter - 在 Flutter 中将固定点放在 PhotoView 上
问题描述
在我告诉你我的问题之前,我想告诉你我的应用程序在做什么。我有一个PhotoView小部件库,它允许我放大/缩小我的图像。我有一个 GestureDetector 小部件,它检测何时长按它会获取 LocalPosition (dy, dx) 并在我的 PhotoView 小部件上显示一个 MaterialButton(point)。到目前为止一切正常
但我的问题是在我放大 PhotoView 时,添加在图像上的 MaterialButtons(points) 不在同一位置。我会让一张照片看看什么时候是正常的图像并放大。
我真的不知道我该怎么做,我只是希望 MaterialButton 保持在同一个位置以进行普通视图和缩放视图。
我为 MaterialButton 添加位置并显示每个点的代码
return Container(
child: Stack(
children: <Widget>[
GestureDetector(
onLongPressStart: (LongPressStartDetails details) {
var positionX = details.localPosition.dx - 40;
var positionY = details.localPosition.dy;
Navigator.push(
context,
MaterialPageRoute(
builder: (context) => AddTaskScreen(
positionX: positionX.toString(),
positionY: positionY.toString(),
project: widget.project,
pdfDocument: widget.pdfDocument,
user: widget.user)));
},
child: PhotoView(
imageProvider: NetworkImage(data),
),
),
for (int i = 0; i < state.taskList.length; i++)
Positioned(
top: double.parse(state.taskList[i].positionY),
left: double.parse(state.taskList[i].positionX),
child: MaterialButton(
onPressed: () {
Navigator.push(
context,
MaterialPageRoute(
builder: (context) =>
TaskDetailScreen(
task: state.taskList[i],
user: widget.user,
projectId: widget.project.id,
)));
},
color: state.taskList[i].status == in_progress
? Colors.redAccent
: Colors.green,
shape: CircleBorder(),
),
)
],
),
alignment: Alignment.center,
);
解决方案
推荐阅读
- javascript - 在拾取箭头键时,我的 Javascript 程序除了 console.log() 不会执行任何操作
- java - TreeTableView 行动态样式格式化失败
- r - 将不均匀列表转换为 data.frame
- amazon-web-services - 重启后删除Jenkins配置
- django - Django 管理员。表格内联。如何在 TabulatInline 视图中显示 ForeignKey 相关模型
- python - 如何修复我的链接列表代码显示:AttributeError:'linked_list'对象没有属性'head'
- mysql - 当然这是一个愚蠢的语法错误,但我是 sql: 1054 的初学者。未知列错误
- mysql - MySQL 数据库限制,如果为每个 ZipCode 创建不同的数据库
- c# - 我如何确定从现在到选定日期减去 [DateTime.Now-datetimepicker1] 的月份和年份?
- c# - IBackgroundTask 中的 FullTrustProcessLauncher 不起作用