Android 截取在不同的近文本视图上的滑动
我有三个文本视图,tv_1和tv_2,tv_3,当用户从一个文本视图滑动到另一个文本视图时,我会拦截滑动事件 这是我写的Android 截取在不同的近文本视图上的滑动,android,touch-event,ontouchlistener,Android,Touch Event,Ontouchlistener,我有三个文本视图,tv_1和tv_2,tv_3,当用户从一个文本视图滑动到另一个文本视图时,我会拦截滑动事件 这是我写的 @Override public boolean onTouch(View v, MotionEvent event) { switch (event.getAction()) { case MotionEvent.ACTION_DOWN: { //do something return true; } cas
@Override
public boolean onTouch(View v, MotionEvent event) {
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN: {
//do something
return true;
}
case MotionEvent.ACTION_UP: {
// do something
return true;
}
}
return false;
}
通过这种方式,我可以在用户第一次按textview时以及在将手指从屏幕上松开时进行拦截。我知道如何在视图之间进行截取滑动。
例如,若用户从tv_1滑动到tv_3,应用程序应该知道路径是从1到3。如何操作?您可以使用视图坐标定义向下/向上位置
@Override
public boolean onTouch(View v, MotionEvent event) {
float currentX = event.getX();
float currentY = event.getY();
int action = event.getAction();
switch (action & MotionEvent.ACTION_MASK) {
case MotionEvent.ACTION_DOWN:
startX = currentX;
startY = currentY;
return true;
case MotionEvent.ACTION_MOVE:
moveX = currentX;
moveY = currentY;
return true;
case MotionEvent.ACTION_UP:
upX = currentX;
upY = currentY;
return true;
}
return false;
}
并检查:
int top = tv_one.getTop();
int left = tv_one.getLeft();
int width = tv_one.getWidth();
int height = tv_one. getHeight();
RectF tv_one_rect = new RectF(left, top, left + width, top + height);
boolean insideTv_one = tv_one_rect.contains(moveX, moveY);
我认为你应该让你的onTouch事件在一个包含三个文本视图的布局上,然后计算git event.getX和event.getY,在每个点上触摸,然后你就可以知道是否从一个文本视图开始刷到另一个文本视图