我试图为一个View
添加onTouchEvent
,但是在这个链接上我看到了过时的支持:https://developer.android.com/sdk/support_api_diff/26.0.0-alpha1/changes/android.support.v4.view.MotionEventCompat.html。
它说,它们都已被弃用。那么应该使用什么代码来替代MotionEventCompat
函数呢?
我试图为一个View
添加onTouchEvent
,但是在这个链接上我看到了过时的支持:https://developer.android.com/sdk/support_api_diff/26.0.0-alpha1/changes/android.support.v4.view.MotionEventCompat.html。
它说,它们都已被弃用。那么应该使用什么代码来替代MotionEventCompat
函数呢?
MotionEvent
对象来实现相同的效果。请参见下面的示例和比较:public boolean onTouch(MotionEvent motionEvent) {
// previously you would do this
final int action = MotionEventCompat.getActionMasked(motionEvent);
// now you would do this
final int action = motionEvent.getActionMasked();
}
我觉得你可能有些困惑,因为一些Android文档尚未更新其示例代码,所以其中一些示例代码仍在使用已弃用的方法。
更多信息,请阅读此处。
希望能对你有所帮助。
我知道这是一个老问题,但我不得不重构一些代码并更新这些已弃用的函数。 重构很容易,只需执行以下操作:
MotionEventCompat.ACTION_MASK
这样的常量,则将其替换为MotionEvent.ACTION_MASK
MotionEventCompat.getPointerId(ev, index);
这样的东西时,请改为使用ev.getPointerId(index);
就是这样! 我将列举更多示例以使其更清晰:
MotionEventCompat.ACTION_POINTER_DOWN
替换为MotionEvent.ACTION_POINTER_DOWN
MotionEventCompat.ACTION_POINTER_UP
替换为MotionEvent.ACTION_POINTER_UP
MotionEventCompat.getX(ev, pointerIndex);
替换为ev.getX(pointerIndex);
MotionEventCompat.getY(ev, pointerIndex);
替换为ev.getY(pointerIndex);
MotionEventCompat.getActionIndex(ev);
替换为ev.getActionIndex();
此外(与此问题不直接相关),我不得不将VelocityTrackerCompat.getXVelocity(velocityTracker, mActivePointerId);
替换为velocityTracker.getXVelocity(mActivePointerId);
我希望这能帮助未来的某个人 :)