在我的应用程序中,我需要在同一 textView 上使用单击和拖动事件。
我编写了以下代码:
... }
switch(event.getAction()) {
case MotionEvent.ACTION_UP:
// TextDialog.setVisibility(View.VISIBLE);
break;
case MotionEvent.ACTION_DOWN: {
disallowTouch(parent, true);
int downX = (int)event.getX();
int downY = (int)event.getY();
return false; // allow other events like Click to be processed
}
case MotionEvent.ACTION_MOVE:
int x = (int)event.getRawX();
int y= (int)event.getRawY();
layoutParams.leftMargin = x - 50;
layoutParams.topMargin = y - 70;
tvText.setLayoutParams(layoutParams);
break;
default:
break;
}
return true;
}
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
TextDialog.setVisibility(View.VISIBLE);
}
但只有ACTION_MOVE
工作中。这onClick
事件没有被解雇。
我只想在单击 TextView 时显示一个对话框。
我怎样才能实现这个目标?
同时使用 setOnTouchListener 和 setOnClickListener
在 onTouch 中:
public boolean onTouch(View v, MotionEvent event) {
ViewParent parent = v.getParent();
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN: {
disallowTouch(parent, true);
downX = event.getX();
downY = event.getY();
return false; // allow other events like Click to be processed
}
}
private void disallowTouch(ViewParent parent, boolean isDisallow) {
if (parent != null) {
parent.requestDisallowInterceptTouchEvent(isDisallow);
}
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)