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 (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...