gpt4 book ai didi

android - touchlisteners 的 GridView 问题

转载 作者:行者123 更新时间:2023-11-29 22:28:40 25 4
gpt4 key购买 nike

我正在尝试创建一个自定义 GridView,但我在使用触摸监听器时遇到了问题。

我想做什么:

  • 使用自定义 Views 创建 GridView
  • 长按某个项目使其变为“可编辑”。
  • 水平或垂直拖动 View 以移动它在 GridView 中的位置。

这是我遇到问题的地方:
我正在为长按功能实现 GestureDetector.OnGestureListener,因为由于某些原因,在覆盖 onTouchEvent() 时使用 gridview.setOnItemLongClickListener() 不起作用GridView 本身的 (我需要拖动部分)。所以此时一切都很好。现在我只需要知道长按何时完成。所以我虽然:“嗯,这不应该很难。”我大错特错了。我已经摆弄了很长一段时间,看起来使用不同的触摸事件对我没有帮助:/
当单步执行 onTouchEvent() 时,我注意到只给出了 1 个 Action :MotionEvent.ACTION_DOWN。那我做错了什么?我需要 MotionEvent.ACTION_UP...

最佳答案

找到罪魁祸首:

我正在做这样的事情

@Override
public boolean onTouchEvent(MotionEvent event) {

// Give everything to the gesture detector
boolean retValue = gestureDetector.onTouchEvent(event);

switch (event.getAction()) {
case MotionEvent.ACTION_MOVE :
onMove();
break;
case MotionEvent.ACTION_UP :
onUp();
break;
case MotionEvent.ACTION_CANCEL:
onCancel();
break;
}
return retValue;
}

我认为 retValue 总是返回 false,所以没有触发其他事件。
这解决了问题:

@Override
public boolean onTouchEvent(MotionEvent event) {

// Give everything to the gesture detector
gestureDetector.onTouchEvent(event);

switch (event.getAction()) {
case MotionEvent.ACTION_MOVE :
onMove();
break;
case MotionEvent.ACTION_UP :
onUp();
break;
case MotionEvent.ACTION_CANCEL:
onCancel();
break;
}
return true;
}

关于android - touchlisteners 的 GridView 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5063675/

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