gpt4 book ai didi

android - 触摸监听器和长按监听器

转载 作者:搜寻专家 更新时间:2023-11-01 07:59:44 25 4
gpt4 key购买 nike

我在表面 View 上编写了一个带有触摸监听器的代码来移动对象并且它工作得很好,当我插入长按监听器时触摸监听器停止工作并且对象移动即使我没有触摸它。长按需要打开对话框。

创建时:

sf = new SurfaceView(this);
sf.setOnTouchListener(this);
sf.setOnLongClickListener(this);

长按:

public boolean onLongClick(View v) {
if (!changePositionMode){
final Dialog dialog = new Dialog(this);
dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
dialog.setContentView(R.layout.text_manager);
dialog.setTitle("Browser");
dialog.setCancelable(true);
dialog.show();
}
return false;
}

触摸监听器

public boolean onTouch(View v, MotionEvent event) {
Point p=new Point((int)event.getX(),(int)event.getY());
if (event.getAction()==MotionEvent.ACTION_DOWN){
}else if (object.isTouch(p)){
changePositionMode=true;
x=event.getX();
y=event.getY();
draw();
return true;
}
}
else if (event.getAction()==MotionEvent.ACTION_MOVE){
t.changeTamplatePosition(event.getX()-x,event.getY()-y);
x=event.getX();
y=event.getY();
draw();
return true;
}
else if (event.getAction()==MotionEvent.ACTION_UP){
changePositionMode=false;
}

return false;
}

最佳答案

您必须在 OnTouch(View v,MotionEvent event) 函数中返回 false 而不是 true 以便其他监听器 (OnLongClickListener)控件保持 Activity 状态。

关于android - 触摸监听器和长按监听器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22798327/

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