onClicklistener涵盖scaleGestureDetector

时间:2017-09-10 07:28:50

标签: java android onclicklistener

我设置了一个像这样的ZoomLayout:https://gist.github.com/anorth/9845602,添加了一个Framelayout,在Framelayout上添加了一些ImageView。

这些ImageViews有一个onClickListener,因此它们通过激活onClickListener来改变颜色。

问题: 当你想用手指捏住放大时,如果你的手指不在ImageViews上,它只能检测到。 如果你的手指在它们上面,我发现,ImageViews的onClickListener覆盖了scaleGestureDetector。 如果我移动手指进行缩放,则onClickListener不会触发。

这个问题有解决方法吗?

我减小了ImageViews的大小并且效果更好,但是点击它们更加困难,所以它不适合我。

编辑:setclickable(false)有效,因此在zoomlayout上没有任何内容阻止输入。 如何激活/停用imageview onclicklistener或激活缩放?

马克

1 个答案:

答案 0 :(得分:0)

我很快调查了FrameLayout&我可以看到它有onScaleBeginonScaleEnd等回调。你可以在你的活动或片段&中听取它们。做一些可能对你有用的事情,

public void onScaleBegin() {
    imageView.setClickable(false);
    imageView.setFocusable(false);
    imageView.setFocusableInTouchMode(false);
}

public void onScaleEnd() {
    imageView.setClickable(true);
    imageView.setFocusable(true);
    imageView.setFocusableInTouchMode(true);
}