首页 > 解决方案 > GestureDetector:长按释放时检测

问题描述

我正在覆盖 GestureDetector 的某些功能,并且我检测到长按,并且希望在它释放后也检测到,但我还没有找到该功能。实际上,我发现释放水龙头的唯一功能是 onSingleTapUp。是否可以检测到何时释放长按?

我的代码:

class GestureListener (val position: Int) : GestureDetector.SimpleOnGestureListener() {

        override fun onLongPress(e: MotionEvent?) {
            // Do something here
            super.onLongPress(e)
        }

标签: androidkotlin

解决方案


在Java中你可以这样做

 boolean isDown = false;

 textView.setOnTouchListener(new View.OnTouchListener() {
            @Override
            public boolean onTouch(View v, MotionEvent event) {
                int action = event.getAction();
                if (action == MotionEvent.ACTION_DOWN) {
                    Toast.makeText(v.getContext(), "down: " , 1000).show();
                    isDown = true;
                }

                else if (action == MotionEvent.ACTION_UP) {


                    if (isDown) {
                        // touch press complete, show toast
                        Toast.makeText(v.getContext(), "User Release Long Press: " , 1000).show();
                        isDown = false;

                    }
                }


                return true;
            }
        });

推荐阅读