区分 customView 和滚动视图之间的触摸事件

sur*_*esh 2 android scrollview android-custom-view touch-event

我在滚动视图中添加了一个 customView 和 customView。现在我想区分两个触摸事件。我的问题是当尝试滚动时,customView 也会获取触摸事件,而当我尝试在 customView 中更改时,滚动视图获取事件。

  1. 滚动时如何停止 customView 触摸事件。
  2. 当 customView 需要事件时,我们如何停止滚动触摸事件。

提前致谢

Rai*_*ker 6

您可以将触摸监听器设置为子视图,然后在 onTouch() 事件中,您可以阻止拦截父级的触摸事件。

IE

v.setOnTouchListener(new OnTouchListener() {
    // Setting on Touch Listener for handling the touch inside ScrollView
    @Override
    public boolean onTouch(View v, MotionEvent event) {
    // Disallow the touch request for parent scroll on touch of child view
    v.getParent().requestDisallowInterceptTouchEvent(true);
    return false;
    }
});
Run Code Online (Sandbox Code Playgroud)

关于第二个问题,我不知道你在用 customview 做什么,但也许你更喜欢使用点击事件,因为在其中使用不同的逻辑对用户不友好,ontouch而且onclick它总是会意外启动。