gpt4 book ai didi

Android OnTouchListener 导致拖拽不稳

转载 作者:太空宇宙 更新时间:2023-11-03 12:36:26 27 4
gpt4 key购买 nike

我有一个按钮(代码中的变量 theButton),并且希望能够将它拖到它的父 View 周围。这是它的 OnTouchListener:

    OnTouchListener touchBListener = new View.OnTouchListener() 
{
public float offsetX;
public float offsetY;

@Override
public boolean onTouch(View v, MotionEvent event)
{
int theAction = event.getAction();
switch (theAction)
{
case MotionEvent.ACTION_DOWN:
// Button down
offsetX = theButton.getX() - event.getX();
offsetY = theButton.getY() - event.getY();
break;
case MotionEvent.ACTION_MOVE:
// Button moved
float newX = event.getX() + offsetX;
float newY = event.getY() + offsetY;
v.setX(newX);
v.setY(newY);
break;
case MotionEvent.ACTION_UP:
// Button up
break;
default:
break;
}
return true;
}
};
theButton.setOnTouchListener(touchBListener);

当我拖动按钮时,它会沿拖动的大致方向移动,但它会在“当前”位置和拖动中较早的位置之间来回跳动。由于某种原因,当阻力沿右上方向移动时,跳跃更大。

是否可以使用 OnTouchListener 进行“平滑”拖动,或者我是否需要改用 OnDragListener?

最佳答案

我在另一篇文章中找到了答案 - 当我将 event.getX()event.getY() 更改为 event.getRawX()event.getRawY(),拖动很流畅。

关于Android OnTouchListener 导致拖拽不稳,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18175424/

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