Android ListView - 在水平移动事件

时间:2018-05-27 12:31:24

标签: android listview listviewitem

我有这个奇怪的问题。 我有一个音量控制应用程序。 在我的ListView中,我有一些自定义元素,我可以用来更改特定应用程序的音量。在这个自定义元素中,我有一个MotionEvents监听器,它主要监视motionEvent.getX()坐标来计算音量变化。

例如,这是我现在的观点:AppListView
只需触摸一个元素并水平移动手指,彩色线条和数字就会随时改变。

我的问题是当我尝试更改音量并且我也进行了一些垂直移动时,应用程序上的事件将因为滚动事件而被取消。

我试图在很多方面禁用ListView的滚动,但大多数只是简单地禁用了所有的触摸事件。

如何检测水平移动并禁用滚动,直到MotionEvent.ACTION_UP操作?

或者

你可以建议我没有ListView的另一种解决方案吗?

(ListView在SwipeDownRefreshLayout中。)

谢谢!

1 个答案:

答案 0 :(得分:0)

好的,我找到了解决方案。 在我的自定义适配器中,我有一个onTouchListener,在onTouch我添加了这一行: view.getParent().requestDisallowInterceptTouchEvent(true); true时的ACTION_DOWNfalse时的ACTION_UP