当用户触摸列表标题并执行MotionEvent.ACTION_MOVE
时,我基本上尝试禁用列表视图上的滚动。
如果你想知道为什么这个疯狂的实现? - 我基本上是在我的listView Header上构建一个自定义搜索条,它可以在MotionEvent.ACTION_MOVE
上工作,因为视图是列表的标题查看它不应滚动,直到用户从此自定义标题视图中取消触摸。
所以我的问题/问题是。
现在我有2个java类。活动(具有此列表视图)和自定义标题(实现View
的{{1}})。
OnTouchListener
作为上述here来禁用列表视图滚动。由于我的不是自定义列表,因此可以在活动类本身中禁用它吗? 对不起,我刚刚学习,所以请不要介意我的新意。
答案 0 :(得分:1)
好吧,在我提出的问题上,我的安静很少,所以我在回答问题的前半部分。
当我的标题视图被触摸到此列表视图(活动)以禁用滚动时,如何传递值?
我在创建interface
时获得了解决方案。所以我创建了一个public static interface
,它有一个public void headerTouched(Boolean touchEvent);
方法。我的具有listView
代码的类是implementer
,因此它会自动从接口类重写此方法。我在这个类中创建了一个私有变量(在我的例子中:boolean
),它监听从驱动程序类返回的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 creating custom List View class. (for disabling scroll)