1

当用户触摸列表标题并执行时,我基本上是在尝试禁用列表视图上的滚动MotionEvent.ACTION_MOVE

如果您想知道为什么会出现这种疯狂的实施?- 我基本上在我的 listView Header 上构建了一个自定义搜索栏,它可以工作,MotionEvent.ACTION_MOVE并且由于视图是列表视图的标题,它不应该滚动,直到用户从这个自定义标题视图中取消触摸。

所以我的问题/问题是。

现在我有2个java类。Activity(它有这个列表视图)和自定义 Header(它是一个View实现OnTouchListener)。

  1. 当我的标题视图被触摸到此列表视图(活动)以禁用滚动时,如何传递值?
  2. 似乎可以通过覆盖来禁用列表视图滚动,如此dispatchTouchEvent所述。由于我的不是自定义列表视图,是否可以在活动类本身中禁用?

对不起,我只是在学习,所以请不要介意我的新手。

4

1 回答 1

1

好的,我对我提出的问题有点沉默,所以我正在回答我问题的前半部分。

当我的标题视图被触摸到此列表视图(活动)以禁用滚动时,如何传递值?

我在创建interface. 所以我创建了一个public static interfacepublic void headerTouched(Boolean touchEvent);方法的。我的类具有的代码listView是,implementer因此它会自动从接口类覆盖此方法。在这个类中,我创建了一个私有变量(在我的例子boolean中:),它监听从驱动程序类返回的布尔值。我的驱动程序类是具有此接口对象的 HeaderView,并通过它设置值。为了帮助新手了解界面,我在下面发布了我的代码。

接口类

public static interface HeaderTouchListener{
    public void headerTouched(Boolean touchEvent);
}

实施者类

private boolean headerTouched = false;
public void headerTouched(Boolean touchEvent) {
    headerTouched = touchEvent;
}

司机班

HeaderTouchListener touchListner = new ImplementerClassName();
touchListner.headerTouched(true);

我仍然无法弄清楚如何在我的列表视图上禁用滚动。有关它的更多信息,请关注此问题Set dispatchTouchEvent for List View without create custom List View class。(用于禁用滚动)

于 2012-07-11T06:48:06.923 回答