Android拖放事件在4.4.2的ionic中不工作
Android drag event not working on 4.4.2 with ionic
我一直在用AngularJS实现一个Ionic应用。
我有一个"卡片"列表,一张垂直地放在另一张的上面。用户可以滚动屏幕查看更多的卡片,或者将它们从屏幕上划掉。这在IOS上没问题(在5c和4上进行了测试),但在HTC One M8 (Android)上有一个bug,不允许用户滑动/拖动元素。
我在这里看到了这个bug的文档:
https://github.com/driftyco/ionic/issues/1129和http://uihacker.blogspot.tw/2011/01/android-touchmove-event-bug.html
然而,当我试图实现一个解决方案,如在后一个链接中提供的我的应用程序崩溃。
我的手势处理事件:
var self = this;
ionic.onGesture('dragstart', function(e) {
window.requestAnimationFrame(function() {
self._doDragStart(e)
});
}, this.elemToDrag);
ionic.onGesture('drag', function(e) {
window.requestAnimationFrame(function() {
self._doDrag(e)
});
}, this.elemToDrag);
ionic.onGesture('dragend', function(e) {
window.requestAnimationFrame(function() {
self._doDragEnd(e);
});
}, this.elemToDrag);
},
_doDragStart: function(e) {
},
_doDrag: function(e) {
//handle dragging
},
_doDragEnd: function(e) {
this.transitionOut(e);
}
我已经尝试添加e.p preventdefault()到事件,但它似乎什么都不做。任何帮助都将非常感激,谢谢
您可以尝试复制相同的代码,但使用touchstart
, touchmove
和touchend
作为您的事件,正如您在bug链接中提到的那样,用preventDefault()
防止touchstart
。
另一种选择是用mousedown
, mousemove
, mouseup
复制它,但像在IOS中一样检测设备会带来不希望的副作用。
我的意思是你在工作的设备中使用IONIC的方式,并为那些不工作的设备手动复制IONIC之外的行为。
当我开始使用isroll -probe来接管滚动时,这开始在Android上工作。我还使用了变换来滚动,而不是原生滚动。
希望能有所帮助
相关文章:
- JQuery插件选择不在我的Ionic应用程序中工作
- Angular/Ionic/Javascript:无法让下拉过滤器作为复选框工作
- 在适当的工作流程中将第三方JS库添加到Ionic
- 超薄的开机自检呼叫无法从 Ionic 应用程序工作
- 控制器中的$scope在视图中不可访问/数据绑定不工作(IONIC/ANGULAR)
- Android拖放事件在4.4.2的ionic中不工作
- AngularJS状态在Ionic中不能正常工作
- 谷歌地图API v3点击事件不工作在Ionic模拟器或设备
- Ionic cordova网络信息插件在ios中不工作
- Ionic模板不能在移动设备上工作
- Ionic/cordova屏幕方向不工作
- Ionic, AngularJs:指令属性$watch在视图被渲染后停止工作
- Ionic Android应用程序可以工作,但安装时不是apk
- 从在Ionic中不工作的对象中检索数据
- Ionic UI路由器不工作
- Ionic / Angular混合应用,震动事件无法正常工作
- 使用Angular和Ionic上传图片到解析服务器无法工作
- Html5音频不能正常工作与angular | ionic
- Ionic运行android不工作
- ionic+sqlite在浏览器中工作,但在实际设备上出现TypeError