[英]Android listen to touch release
我正在嘗試收聽觸摸屏發布,但未觸發該事件。
這是我的代碼:
public class MyView extends View {
public MyView(final Context context) {
super(context);
setOnTouchListener(new OnTouchListener() {
public boolean onTouch(View v, MotionEvent e) {
if (e.getAction() == MotionEvent.ACTION_DOWN) {
makeToast("press", context);
} else if (e.getAction() == MotionEvent.ACTION_UP || e.getAction() == MotionEvent.ACTION_CANCEL) {
makeToast("release", context);
}
return false;
}
});
}
void makeToast(String s, Context c) {
CharSequence text = s;
int duration = Toast.LENGTH_SHORT;
Toast toast = Toast.makeText(c, text, duration);
toast.show();
}
}
活動類:
public class MyActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
MyView v = new MyView(getApplicationContext());
setContentView(v);
}
}
發生的是,當我觸摸屏幕時,會出現上面寫有“ press”的祝酒詞,但是當我釋放觸摸時,就不會出現任何祝酒詞,而我希望會出現上面寫有“ release”的祝酒詞。
我想念什么?
您需要在onTouchListener內部返回true而不是false。
發生的情況是先觸發了Action Down,但是您返回false,表示未處理Action Down。
如果返回true,則將確保已完全捕獲其捕獲的每個動作,僅當您知道需要其他視圖來處理該動作時,才返回false。
祝好運!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.