Android 如何处理类层次结构(相对于视图层次结构)的触摸事件拦截?

Android 如何处理类层次结构(相对于视图层次结构)的触摸事件拦截?,android,android-listview,Android,Android Listview,我知道如何处理触摸事件拦截,以便在必要时从子视图中窃取触摸事件。但是,此机制适用于视图层次结构,而不是类层次结构(以及由onTouchEvent()返回的布尔值)。这就是我的问题 我面临的用例 我目前正在尝试将自定义拉式刷新ListView与自定义滑动ListView相结合。 基本上,我创建了两个可以独立工作的类: public class SwipeListView extends ListView {} public class PullToRefreshListView extends

我知道如何处理触摸事件拦截,以便在必要时从子视图中窃取触摸事件。但是,此机制适用于视图层次结构,而不是类层次结构(以及由
onTouchEvent()
返回的布尔值)。这就是我的问题

我面临的用例 我目前正在尝试将自定义拉式刷新ListView与自定义滑动ListView相结合。 基本上,我创建了两个可以独立工作的类:

public class SwipeListView extends ListView {}

public class PullToRefreshListView extends ListView {}
为了组合它们,我让滑动列表扩展了拉刷新列表,如下所示。这是一个好的解决方案吗

public class SwipeListView extends PullToRefreshListView {}

public class PullToRefreshListView extends ListView {}
现在我想在拉刷新时阻止刷卡事件,但我很难找到一种干净的方法来做到这一点,同时又不会在两个类之间添加太多依赖项。

当前的类都使用
onTouchEvent()
处理触摸事件

  • 我是否应该误用
    onInterceptTouchEvent()
    /
    onTouchEvent()
    的返回值来通知子类超类已使用该事件
  • 我应该通过从子类访问超类的状态来绑定这两个类吗?有没有我错过的更好的解决方案

您是否尝试过类似于
SwipeListView扩展列表视图
PulltoRefreshListView扩展SwipeListView
?Ankit Popli正如我所说,我尝试过另一种方法,但我想这没有太大区别,无论如何,我必须在某个地方放置一些逻辑来阻止滑动功能。当然,当另一个正在运行时,您必须放置一些逻辑来阻止其中一个
这是一个好的解决方案吗?
是的,根据我的说法,这应该可以解决问题。