javascript - Flutter拖放坐标系
问题描述
我希望将Cordova-Vuejs-jqueryUI移动应用程序移植到Flutter。该应用程序的主要功能是使用拖放功能将足球运动员拖入球场。像这样: 查看 GIF
球场有position: relative和球员有position: absolute。当一名球员被摔倒时,其偏移量将根据其在球场上的位置转换为百分比值。这基本上是:将音高的大小除以播放器元素的偏移位置(element.offsetTop,element.offsetLeft)。其结果是一个相对值,我可以将其存储到数据库中以供以后重新加载。这确保了不同屏幕尺寸的玩家位置一致性。
function calculateRelativeUnits(droppableSelector, draggable) {
const dropW = $(droppableSelector).outerWidth();
const dropH = $(droppableSelector).outerHeight();
const left = $(draggable).offset().left;
const top = $(draggable).offset().top;
const percentageW = parseFloat((left / dropW) * 100).toFixed(1);
const percentageH = parseFloat((top / dropH) * 100).toFixed(1);
return {
left: percentageW,
top: percentageH
};
}
但是现在,我怎样才能将这个功能移植到 Flutter 中呢?是否有类似于基于位置相对和绝对位置的像素值,我可以稍后将其转换为百分比值?我一直在研究 Flutter 提供的拖放小部件,但我还没有找到使这个相对定位系统工作的方法。
谢谢!
解决方案
推荐阅读
- java - 无法将 JDBC 与 SQL Server 连接
- angular6 - 如何使用 AgmMap 进行反向地理编码?
- validation - 仅用于复制和粘贴值的脚本(GOOGLE 电子表格)
- firebase - 为云函数指定区域时出现异常“firebase.functions() 需要...无参数...”
- sql - 如何在 SSMS 中检查表的约束
- angular - 角度选择选项 ExpressionChangedAfterItHasBeenCheckedError
- python - Selenium / xpath - 找不到元素,找到父 div
- android - 如何在地图上实现一个带有信息的框?
- css - 更改单选按钮的大小
- java - 蓝牙耳机连接时发送通知