android - 临时绕过ListView滚动

标签 android

我有一个显示 WebViewListActivity
有一个菜单选项可以复制将调用 this 的文本在可见的 WebView 上。
除了一件事,一切正常。我无法在垂直方向上执行文本选择,因为 ListView 会为其自身的滚动消耗相应的 MotionEvent
我试过这个:

@Override
public boolean dispatchTouchEvent(MotionEvent ev) {
    if (webViewsInTextSelectionMode) {
        bypassEventToWebViews(ev);
        return true;
    } else {
        return super.dispatchTouchEvent(ev);
    }
}

这会阻止滚动,但也会将未调整的 MotionEvent 坐标传递给 WebView
在这种情况下,有没有办法正确地阻止 ListView 滚动?

最佳答案

I've got a ListActivity that displays WebViews.

这不是一个好主意。 WebViewListView 会竞争运动事件。在 Android 中很少建议将滚动内容放在滚动内容中,尤其是当它们可以沿相同方向滚动时(在本例中为向上和向下)。

There is a menu option to copy text that will call this on visible WebViews.

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

Everything works except for one thing. I can't perform text selection in vertical direction as ListView consumes corresponding MotionEvents for it's own scrolling.

我的观点完全正确。

Is there a way to correctly prevent ListView from scrolling in this case?

我会专注于摆脱 WebViews,将它们替换为 TextViewHtml.fromHtml()。或者,摆脱 ListView,使用单个 WebView 来呈现您的合并内容。

关于android - 临时绕过ListView滚动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4626676/

相关文章:

Android 主屏幕效果

javascript - 在 Android 网络浏览器中使用 js 打开一个选择框

android - 如何在 Android 中使用横向和纵向连续处理音频?

android - 压缩 Couchdb 复制流量

android - 连接到蜂窝网络时获取 Android 的 IP 地址

android - 我可以将用 Kotlin 编写的库导入到我的 android 项目中吗(使用 java)

android - Android 上的 ionic : How to get Google Play campaign tracking parameters?

android - 一个项目下多个Android应用模块

javascript - 欺骗 JavaScript 兼容性

安卓游戏循环休眠