Android ListView onTouchEvent没有';不要总是放弃行动
我的问题是,当我试图在我的ListView中拖动一个项目时,我并不总是得到ACTION\u DOWN事件。我有很多动作,只有一个动作。 情况并非总是如此。我被击倒了三次。这把我弄糊涂了 我看过类似的问题,但它的答案似乎不适合我。谁能想到为什么会这样 谢谢Android ListView onTouchEvent没有';不要总是放弃行动,android,listview,touch-event,Android,Listview,Touch Event,我的问题是,当我试图在我的ListView中拖动一个项目时,我并不总是得到ACTION\u DOWN事件。我有很多动作,只有一个动作。 情况并非总是如此。我被击倒了三次。这把我弄糊涂了 我看过类似的问题,但它的答案似乎不适合我。谁能想到为什么会这样 谢谢 //list_client -- a listview list_client.setOnTouchListener(new View.OnTouchListener() { float f1 = -1, f2 = -1 ;
//list_client -- a listview
list_client.setOnTouchListener(new View.OnTouchListener() {
float f1 = -1, f2 = -1 ;
@Override
public boolean onTouch(View v, MotionEvent event) {
switch(event.getAction()){
case MotionEvent.ACTION_DOWN:
f1 = event.getRawY();
break;
case MotionEvent.ACTION_MOVE:
f2 = event.getRawY();
if(f2 - f1 > 50){
if(View.VISIBLE != rl_search_and_add.getVisbility() && ){ rl_search_and_add.setVisibility(View.VISIBLE);
}
f1 = f2;
}else if (f2 - f1 < -50){
rl_search_and_add.setVisibility(View.GONE);
f1 = f2;
}
break;
case MotionEvent.ACTION_UP:
f1 = -1; f2 = -1;
break;
}
return false;
}
});
//列表\u客户端--一个列表视图
list_client.setOnTouchListener(新视图.OnTouchListener(){
浮点数f1=-1,f2=-1;
@凌驾
公共布尔onTouch(视图v,运动事件){
开关(event.getAction()){
case MotionEvent.ACTION\u DOWN:
f1=事件。getRawY();
打破
case MotionEvent.ACTION\u移动:
f2=event.getRawY();
如果(f2-f1>50){
if(View.VISIBLE!=rl_search_和_add.getvisibility()&){rl_search_和_add.setVisibility(View.VISIBLE);
}
f1=f2;
}否则如果(f2-f1<-50){
rl_search_和_add.setVisibility(View.GONE);
f1=f2;
}
打破
case MotionEvent.ACTION\u UP:
f1=-1;f2=-1;
打破
}
返回false;
}
});
这种行为可能有几个原因
- 用户可能有点错过了列表,其他组件处理了
操作,但无论用户如何继续拖动并点击列表视图区域,您都会收到MotionEvent.ACTION\u DOWN
操作MotionEvent.ACTION\u MOVE
- 另一种可能性是,您必须更改许多事件,并且它们被移动到历史事件,而您只收到最新的事件。您可以使用的所有历史方法来查看它们
@Override
public boolean onInterceptTouchEvent(MotionEvent event) {
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN:
yDown = event.getRawY();
break;
default:
break;
}
return super.onInterceptTouchEvent(event);
}
然后使用yDown到您的程序中Hello,当拖动完成时,您应该向下移动一个动作,然后移动多个动作,最后向上移动一个动作。是这样吗?但是,我有很多动作,每次都有动作,但我只有5次动作。昨天我让阿西顿跳了两次。没意思。太可怕了。有人告诉我一些我不知道的事情。把动作吞下去?谢谢你的关注。你看过医生了吗?当手指触摸屏幕时触发ACTION_DOWN(向下),当手指离开屏幕时触发ACTION_UP(向上),当手指移动时触发ACTION_MOVE(多次)。什么事困扰着你?