3
我想要在nativescript应用程序中使用绝对布局定位的某些标签上具有拖放功能。使用drag'n'drop可以将它们移动到新的绝对位置吗?如果是的话,你能解释一个办法来达到这个目的吗?在nativescript中使用拖放'n'放置
预先感谢您。
我想要在nativescript应用程序中使用绝对布局定位的某些标签上具有拖放功能。使用drag'n'drop可以将它们移动到新的绝对位置吗?如果是的话,你能解释一个办法来达到这个目的吗?在nativescript中使用拖放'n'放置
预先感谢您。
经过一个小小的研究,我发现,您可以通过以下步骤实现:
示例XML:
<Page xmlns="http://www.nativescript.org/tns.xsd" loaded="pageLoaded">
<AbsoluteLayout>
<Label left="10" top="10" text="drag me" id="dragLabel" />
</AbsoluteLayout>
</Page>
样品的js代码:
var viewModule = require("ui/core/view");
var gestures = require("ui/gestures");
var absoluteLayout = require("ui/layouts/absolute-layout");
function pageLoaded(args) {
var page = args.object;
var dragLabel = viewModule.getViewById(page, "dragLabel");
var observer = dragLabel.observe(gestures.GestureTypes.pan, function (panGestureEventData) {
var deltaX = panGestureEventData.deltaX;
var deltaY = panGestureEventData.deltaY;
absoluteLayout.AbsoluteLayout.setTop(this, deltaY);
absoluteLayout.AbsoluteLayout.setLeft(this, deltaX);
}, dragLabel);
};
此外,nativescript在当前版本(1.2.x的)不支持手势的状态。在平底锅手势中,国家真的有必要知道。这里是你可以做的(在ios中),所以你可以得到状态。编辑文件/tns_modules/ui/gestures/gestures.ios.js和改变功能_getPanData有以下几点:
var observer = dragLabel.observe(gestures.GestureTypes.pan, function (panGestureEventData) {
// ... panGestureEventData.state has on of the above values...
});
这里:
然后,您可以使用状态栏来访问状态也是一个关于nativescript的非常不错的网站的示例代码:http://www.nativescriptsnacks.com/snippets/2017/04/18/drag-drop.html –