java - 监听 View (列表标题)onTouch 事件并禁用 ListView 上的滚动

标签 java android android-layout android-listview

当用户触摸列表标题并执行 MotionEvent.ACTION_MOVE 时,我主要尝试禁用 ListView 上的滚动。

如果您想知道为什么要进行这种疯狂的实现? - 我基本上是在我的 listView header 上构建一个自定义搜索栏,它适用于 MotionEvent.ACTION_MOVE,并且自 View 是 ListView 的标题,在用户离开此自定义标题 View 之前,它不应滚动。

所以我的问题是。

现在我有 2 个 java 类。 Activity (具有此 ListView )和自定义 header (这是一个实现 OnTouchListenerView)。

  1. 当我的标题 View 被触摸到此 ListView ( Activity )以禁用滚动时,如何传递值?
  2. 似乎可以通过重写 dispatchTouchEvent 来禁用 ListView 滚动,如 here 所述.由于我的不是自定义 listView,是否可以在 Activity 类本身中禁用?

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

最佳答案

好吧,我对我问的问题已经有点沉默了,所以我要回答我问题的前半部分。

当我的标题 View 被触摸到此 ListView ( Activity )以禁用滚动时,如何传递值?

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

接口(interface)类

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);

我仍然无法弄清楚如何禁用 ListView 上的滚动。关于它的更多信息,请关注这个问题Set dispatchTouchEvent for List View without creating custom List View class. (for disabling scroll)

关于java - 监听 View (列表标题)onTouch 事件并禁用 ListView 上的滚动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11397031/

相关文章:

java - 即使发生异常,如何最好地执行一组方法

java - 查找字符串中所有不重复的字符

android - 在 com.android.build.gradle.internal.api.ApplicationVariantImpl_Decorated 上找不到属性 'packageApplication'

android - Galaxy Mega 与其他 Phablets 和 Android Manifest

android - 错误 :error: 'drawable/delete.png' is incompatible with attribute android:background (attr) reference|color

java - 将 JDK 放在 ramdisk 上如何提高 IDE 性能?

java - 有没有办法从上次关闭应用程序的地方开始?

android - 向 ListView 添加边距

android - gradle “universalApk true”并没有为我提供所有提到的ABI的apk

android - 在 Android 应用程序中自定义 Facebook 登录按钮