nativeScript-gesturehandler
Nativescript手势插件
npm i --save nativescript-gesturehandler

npm npm GitHub forks GitHub stars

NPM

安装

  • tns plugin add nativescript-gesturehandler

确保在添加插件后运行新构建,以避免任何问题。


这是react-native-gesturehandler的移植版本。源代码基于Krzysztof Magiera的源代码。不要犹豫,去感谢他为他的工作!

API

首先你需要安装此插件

tns plugin add nativescript-gesturehandler

在您的应用启动时,我们需要做一些连接操作,因此打开app.ts并在创建任何View/App/Frame之前添加以下内容

TypeScript
import { install } from "nativescript-gesturehandler";
install();

你可以使用类似以下方式创建手势处理器

import { GestureHandlerTouchEvent, GestureHandlerStateEvent, GestureStateEventData, GestureTouchEventData, HandlerType } from 'nativescript-gesturehandler';


function onGestureTouch(args: GestureTouchEventData) {
const { state, extraData, view } = args.data;
view.translateX = extraData.translationX;
view.translateY = extraData.translationY;
}
function onGestureState(args: GestureStateEventData) {
const { state, prevState, extraData, view } = args.data;
console.log('onGestureState', state, prevState, view, extraData);
}
const manager = Manager.getInstance();
const gestureHandler = = manager.createGestureHandler(HandlerType.PAN, 10, {
shouldCancelWhenOutside: false
});
gestureHandler.on(GestureHandlerTouchEvent, onGestureTouch, this);
gestureHandler.on(GestureHandlerStateEvent, onGestureState, this);
gestureHandler.attachToView(view);

目前你必须记住将gestureHandler存储在某个地方,否则手势在iOS上不会工作(原生对象正在释放)。这个问题将在未来的版本中得到解决。

现在关于API。所有react的对应手势都存在,具有相同的选项和相同的事件extraData