簡體   English   中英

Android聆聽觸摸釋放

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM