如何解决Android ScaleListener无法正常工作
我有以下问题:我想检测和区分同一视图上的用户“触摸”和“单击”。我已经在其他视图上方的视图上注册了onTouch-Listener(参见代码)。
预期的行为::如果用户点击它,则onClick事件将被传递到其下方的视图。如果用户执行缩放手势,则下面的视图将被缩放。
使用侦听器查看
trackpad.setonTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View view,MotionEvent motionEvent) {
if(scaleDetector.onTouchEvent(motionEvent)) {
Log.d("PadLayout","Scaling");
return true;
} else {
Log.d("PadLayout","No Scale detected,this is a tap. Returning false.");
return false;
}
}
});
这是我的ScaleGestureDetector(“ scaleDetector”)中的ScaleListener:
private class ScaleListener extends ScaleGestureDetector.SimpleOnScaleGestureListener {
float factor = 1;
@Override
public boolean onScale(ScaleGestureDetector scaleGestureDetector) {
factor *= scaleGestureDetector.getScaleFactor();
factor = Math.max(1,Math.min(factor,ResourcesCompat.getFloat(getResources(),R.dimen.pad_large)));
setPadScaleFactor(factor); // this method sets scaleX and scaleY
return true;
}
@Override
public boolean onScaleBegin(ScaleGestureDetector scaleGestureDetector) {
return true;
}
}
此代码的问题在于,它永远不会检测到敲击。我可以缩放视图,但是一旦点击它,它什么也没做。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。