Android 临时绕过ListView滚动

Android 临时绕过ListView滚动,android,Android,我有一个显示网络视图的ListActivity。 有一个菜单选项可以复制文本,它将调用可见的网络视图。 除了一件事,一切都正常。我无法在垂直方向上执行文本选择,因为ListView会为自己的滚动使用相应的MotionEvents。 我试过这个: @Override public boolean dispatchTouchEvent(MotionEvent ev) { if (webViewsInTextSelectionMode) { bypassEventToWebVi

我有一个显示网络视图的ListActivity。 有一个菜单选项可以复制文本,它将调用可见的网络视图。 除了一件事,一切都正常。我无法在垂直方向上执行文本选择,因为ListView会为自己的滚动使用相应的MotionEvents。 我试过这个:

@Override
public boolean dispatchTouchEvent(MotionEvent ev) {
    if (webViewsInTextSelectionMode) {
        bypassEventToWebViews(ev);
        return true;
    } else {
        return super.dispatchTouchEvent(ev);
    }
}
这将阻止滚动,但也会将未调整的MotionEvent坐标传递给WebView。
在这种情况下,有没有办法正确地防止ListView滚动?

这是一个完全的暗中拍摄,很可能不起作用,但可能值得一试。您可以尝试在包含Web视图的视图组内调用父ListView。在文本选择期间,每次出现向下运动事件时,都必须调用该函数。这是因为该标志在向上/取消运动事件中重置


如果这不起作用,您可能必须创建自己的ListView副本并对其进行适当的修改。这并不太令人畏惧,您必须将类层次结构中的所有类复制回AdapterView,并修复复制的AdapterView类,该类主要使用具有保护/公共访问器功能的私有/包级别成员变量。

这是一个完全的暗箱操作,很可能不起作用,但可能值得一试。您可以尝试在包含Web视图的视图组内调用父ListView。在文本选择期间,每次出现向下运动事件时,都必须调用该函数。这是因为该标志在向上/取消运动事件中重置

如果这不起作用,您可能必须创建自己的ListView副本并对其进行适当的修改。这并不太令人畏惧,您必须将类层次结构中的所有类复制回AdapterView,并修复复制的AdapterView类,主要使用具有受保护/公共访问器函数的私有/包级别成员变量

我有一个显示网络视图的ListActivity

这不是一个好主意。WebView和ListView将竞争运动项目。在Android中,将滚动内容放入滚动内容中很少是可取的,尤其是当它们可以向同一方向滚动(在本例中为上下滚动)时

有一个复制文本的菜单选项,它将在可见的网络视图上调用该选项

如果你指的是关于这个问题的公认答案,那也不是一个好主意。我对另一个答案持怀疑态度,但至少从表面上看这不是一个坏主意

除了一件事,一切都正常。我无法在垂直方向上执行文本选择,因为ListView会为自己的滚动使用相应的MotionEvents

我的观点完全正确

在这种情况下,有没有办法正确防止ListView滚动

我将把重点放在摆脱WebView上,用TextView和Html.fromHtml替换它们。或者,摆脱ListView,使用单个WebView呈现整合的内容

我有一个显示网络视图的ListActivity

这不是一个好主意。WebView和ListView将竞争运动项目。在Android中,将滚动内容放入滚动内容中很少是可取的,尤其是当它们可以向同一方向滚动(在本例中为上下滚动)时

有一个复制文本的菜单选项,它将在可见的网络视图上调用该选项

如果你指的是关于这个问题的公认答案,那也不是一个好主意。我对另一个答案持怀疑态度,但至少从表面上看这不是一个坏主意

除了一件事,一切都正常。我无法在垂直方向上执行文本选择,因为ListView会为自己的滚动使用相应的MotionEvents

我的观点完全正确

在这种情况下,有没有办法正确防止ListView滚动


我将把重点放在摆脱WebView上,用TextView和Html.fromHtml替换它们。或者,摆脱ListView,使用单个WebView呈现整合内容。

RequestDisallowerWinterCeptTouchEvent就是答案。谢谢这对我也很有用——只是让谷歌知道——我试图在一行上向右或向左滑动时禁用ListView滚动。卷轴干扰了滑动并取消了滑动-因此,在向下滑动/移动事件时不允许拦截触摸事件成功-它现在工作得很好!谢谢RequestDisallowWinterCeptTouchEvent就是答案。谢谢这对我也很有用——只是让谷歌知道——我试图在一行上向右或向左滑动时禁用ListView滚动。卷轴干扰了滑动并取消了滑动-因此,在向下滑动/移动事件时不允许拦截触摸事件成功-它现在工作得很好!谢谢同意,如果我必须从头开始,我会选择单一的网络视图。仍然使用自API 8以来公开的EmulateShiftHold。同意,如果我必须从头开始,我会使用单个WebView。仍然使用自API 8以来公开的EmulateShiftHold。