防止ImageView在滚动时接收触摸事件



我正在制作一个有很多ImageView的应用程序,我需要在其中一些附加一个触摸监听器。在这样做的时候,我遇到了一个问题。如果指针在ImageView与触摸监听器连接的位置按住,并且即将产生滚动事件,则在w/c中View s和ScrollView之间似乎存在战斗场景,事件实际上发生在w/c中,事件应该属于w/c。屏幕以快速的速度滚动,然后返回第一个指针被触摸的地方,所以这意味着这是一个不想要的行为。

ImageView中设置onTouchListener会使滚动不舒服和不需要,我如何防止ImageView在滚动时接收触摸事件?


部分代码

: act_map_view.xml

<?xml version="1.0" encoding="utf-8"?>
<com.nkraft.mobiletomblocator.CustomVScroll
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/vScroll"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:scrollbars="none" >
    <com.nkraft.mobiletomblocator.CustomHScroll 
        android:id="@+id/hScroll"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:scrollbars="none" >
            <com.nkraft.mobiletomblocator.CustomGridLayout
                android:id="@+id/map_grid"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content" >
            </com.nkraft.mobiletomblocator.CustomGridLayout>
    </com.nkraft.mobiletomblocator.CustomHScroll>
</com.nkraft.mobiletomblocator.CustomVScroll>

指出:

  • GridLayout在运行时被ImageView s填充。
  • 我定制了水平和垂直的ScrollView,这样我可以同时在两个方向上滚动,即对角线滚动

从我提到的笔记中,我从我目前面临的问题中找到了线索。我认为这个问题在标准的android滚动条实现之前就已经被考虑过了。发生这种情况的主要原因是我扩展了滚动条的类,并完全替换了它的默认行为。所以为了达到我想要的效果(带对角线滚动的滚动条),我遵循这篇文章,用TwoDScrollView替换了我的垂直和水平滚动视图,也感谢这篇文章指导我。

相关内容

  • 没有找到相关文章

最新更新