我有这个奇怪的问题。 我有一个音量控制应用程序。 在我的ListView中,我有一些自定义元素,我可以用来更改特定应用程序的音量。在这个自定义元素中,我有一个MotionEvents监听器,它主要监视motionEvent.getX()坐标来计算音量变化。
例如,这是我现在的观点:AppListView
只需触摸一个元素并水平移动手指,彩色线条和数字就会随时改变。
我的问题是当我尝试更改音量并且我也进行了一些垂直移动时,应用程序上的事件将因为滚动事件而被取消。
我试图在很多方面禁用ListView的滚动,但大多数只是简单地禁用了所有的触摸事件。
如何检测水平移动并禁用滚动,直到MotionEvent.ACTION_UP操作?
或者
你可以建议我没有ListView的另一种解决方案吗?
(ListView在SwipeDownRefreshLayout中。)
谢谢!
答案 0 :(得分:0)
好的,我找到了解决方案。
在我的自定义适配器中,我有一个onTouchListener
,在onTouch
我添加了这一行:
view.getParent().requestDisallowInterceptTouchEvent(true);
true
时的ACTION_DOWN
和false
时的ACTION_UP