gpt4 book ai didi

android - 我的 View 如何响应鼠标滚轮?

转载 作者:可可西里 更新时间:2023-11-01 19:06:58 26 4
gpt4 key购买 nike

我有一个带有 onTouch 的 View ,可以区分触摸输入和左/中/右鼠标点击,如

@Override
public boolean onTouch(View v, MotionEvent event) {
if (event.getButtonState() == MotionEvent.BUTTON_PRIMARY) // API 14 required
...
...
}

我还希望此 View 能够响应鼠标滚轮。 onTouch 不是这种方式,我也没有找到任何其他事件处理程序来响应鼠标滚轮。也许 View 可以假装可滚动并使用滚动方法做自己的事情?在这一点上,我已经放弃了,我正在使用键盘输入(1 到 9,再加上 0)来选择我希望使用鼠标滚轮选择的显示元素。
因此,我们将不胜感激一个坚定的提示或一些代码。

不要担心需要键盘和鼠标的 Android UI 会影响到公众;该应用程序是一种开发工具。

编辑:下面给出了正确的答案,但只是为了让这个问题对 future 的读者更有帮助,这是(稍微编辑过的)我最终使用的实际代码:

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

最佳答案

接受的答案是一个文档链接,该链接将我带到问题中的示例代码,但该答案已被删除。为了让这个问题不再显示为“未回答”,这就是您的 View 如何响应鼠标滚轮:

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

关于android - 我的 View 如何响应鼠标滚轮?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11024809/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com