android - 区分customView和scroll view的触摸事件

标签 android scrollview android-custom-view touch-event

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

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

提前致谢

最佳答案

你可以给 subview 设置触摸监听器,然后在onTouch()事件中,你可以阻止拦截父 View 的触摸事件。

您可以使用与 https://stackoverflow.com/revisions/19311197/1 中相同的代码—

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;
    }
});

关于第二个问题,我不确切知道你在用 customview 做什么,但也许你想改用点击事件,因为在 ontouch 中使用不同的逻辑对用户来说不是很友好> 和 onclick 因为它总是会意外启动。

关于android - 区分customView和scroll view的触摸事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49238527/

相关文章:

android - 在折叠时将图像设置为标题 CollapsingToolbarLayout

android - 创建可滚动的图像按钮的 android 布局?

java - 如何实现这个自定义 View 的波浪动画呢?

android - 在自定义 View 中调用 fragment 方法

android - Galaxy 10.1 运行应用比 Thunderbolt 慢

android - 什么是线程(java、android)?

java - logcat 在 Android 中显示无法解释的 libgps 错误

Android ScrollView 不滚动

android - ScrollView 内的 map 在晃动

android - Tablayout 自定义 View 不采用全高 android?