android鼠标滚轮事件坐标,我的视图如何响应鼠标滚轮?
我有一个onTouch的视图,可以区分触摸输入和左/中/右鼠标点击,如@Override public boolean onTouch(View v, MotionEvent event) { if (event.getButtonState() == MotionEvent.BUTTON_PRIMARY) // API 14 required ... ... }我也喜欢这个视图来响应鼠标滚轮。
我有一个onTouch的视图,可以区分触摸输入和左/中/右鼠标点击,如
@Override public boolean onTouch(View v, MotionEvent event) { if (event.getButtonState() == MotionEvent.BUTTON_PRIMARY) // API 14 required ... ... }
我也喜欢这个视图来响应鼠标滚轮。 onTouch不是这样,也没有find任何其他事件处理程序来响应鼠标滚轮。 也许视图可以假装可滚动并使用滚动方法做自己的事情? 此时,我放弃了,并使用键盘输入(1到9,加0)来选择我想用鼠标滚轮选择的显示元素。
因此,我们将非常感谢一些坚定的提示或一些代码。
不要担心需要键盘和鼠标的Android UI会对公众造成影响; 该应用程序是一个开发工具。
编辑:下面给出了正确的答案,但是这个问题对未来的读者更有帮助,这是(略微编辑)我正在使用的实际代码:
@Override public boolean onGenericMotionEvent(MotionEvent event) { if (0 != (event.getSource() & InputDevice.SOURCE_CLASS_POINTER)) { switch (event.getAction()) { case MotionEvent.ACTION_SCROLL: if (event.getAxisValue(MotionEvent.AXIS_VSCROLL) < 0.0f) selectNext() else selectPrev(); return true; } } return super.onGenericMotionEvent(event); }
接受的答案是一个文档链接,它引导我查询问题中的示例代码,但该答案已被删除。 因此,此问题不再显示为“未答复”,这是您的视图可以响应鼠标滚轮的方式:
@Override public boolean onGenericMotionEvent(MotionEvent event) { if (0 != (event.getSource() & InputDevice.SOURCE_CLASS_POINTER)) { switch (event.getAction()) { case MotionEvent.ACTION_SCROLL: if (event.getAxisValue(MotionEvent.AXIS_VSCROLL) < 0.0f) selectNext(); else selectPrev(); return true; } } return super.onGenericMotionEvent(event); }
鼠标滚轮事件操作被视为滚动事件
更多推荐
所有评论(0)