tza*_*ibs 3 android position object ontouchlistener onlongclicklistener
我在表面视图上编写了一个带有触摸监听器的代码来移动对象,它工作得很好,当我插入长按监听器时,触摸监听器停止正常工作,即使我不触摸它,对象也会移动。长按需要打开对话框。
创建时:
sf = new SurfaceView(this);
sf.setOnTouchListener(this);
sf.setOnLongClickListener(this);
Run Code Online (Sandbox Code Playgroud)
长按时:
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;
}
Run Code Online (Sandbox Code Playgroud)
触摸监听器
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;
}
Run Code Online (Sandbox Code Playgroud)
您必须返回false而不是true在OnTouch(View v,MotionEvent event)函数中,以便控件上的其他侦听器(OnLongClickListener)保持活动状态。
| 归档时间: |
|
| 查看次数: |
4373 次 |
| 最近记录: |