gpt4 book ai didi

Android:不同的拖放操作 onLongClick 和 onTouch

转载 作者:太空狗 更新时间:2023-10-29 13:32:45 24 4
gpt4 key购买 nike

我想用一个按钮实现两种不同的拖放交互。如果用户长按按钮,他可以移动按钮。这没问题,我实现了 OnLongClickListener:

@Override
public boolean onLongClick(View v) {
ClipData dragData = ClipData.newPlainText(
AbstractFragment.BUTTON_ID_TAG, "" + v.getId());
DragShadowBuilder shadow = new DragShadowBuilder(v);
v.startDrag(dragData, shadow, null, 0);
return true;
}

如果用户触摸按钮并立即拖动,他可以从这个按钮画一条线到另一个按钮。我想我必须实现 OnTouchListener 接口(interface),但我不确定识别此用户交互的条件。我需要使用哪个 MotionEvent 或者 MotionEvent 的哪个组合来识别此输入。

希望大家多多指教!

格茨 war

最佳答案

这是我的解决方案:

@Override
public boolean onTouch(View v, MotionEvent event) {
if (event.getAction() == MotionEvent.ACTION_MOVE) {
Toast.makeText(getActivity(), "onClick", Toast.LENGTH_LONG).show();
ClipData dragData = ClipData.newPlainText(
AbstractFragment.BUTTON_ID_TAG, "" + v.getId());
DragShadowBuilder shadow = new CanvasDragShadow(v);
v.startDrag(dragData, shadow, null, 0);
return true;
}
return false;
}

我添加了这个方法,它起作用了。也许有必要检查 MotionEvent 的历史记录以获得更好的用户体验。

关于Android:不同的拖放操作 onLongClick 和 onTouch,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13728717/

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