使用ontouch事件创建onclick

时间:2016-04-03 09:32:32

标签: android onclick ontouch

这可能是一个重复的问题,如果它是指引我的话。

我有一个带有textview的线性布局,点击那个linearlayout我想改变linearlayout的背景和textview的文本颜色

Layout not clicked

Layout when clicked

我试过onTouch的Action.Down和Action.Up, 但它干净利落。如果用户在ActionDown之后向任何方向滑动,则其颜色将保持更改,除非再次单击。

1 个答案:

答案 0 :(得分:1)

首先你需要一个像这样的GestureDetector

 private GestureDetector gestureDetector;

        gestureDetector = new GestureDetector(this, new SingleTapConfirm());

SimpleOnGestureListener添加到GestureDetector

 private class SingleTapConfirm extends GestureDetector.SimpleOnGestureListener {

        @Override
        public boolean onSingleTapUp(MotionEvent event) {
            return true;
        }
    }

现在写下你的OnTouchListener

View.OnTouchListener simpleMethod = new View.OnTouchListener() {

            if (gestureDetector.onTouchEvent(event)) {
                // single tap code goes here, its single tap click
                // its like Onclick for your view 
            } else {
                // your code for move and drag, touch 
                switch (event.getActionMasked()) {

                    case MotionEvent.ACTION_DOWN:
                  // your action down action

                        break;

                    case MotionEvent.ACTION_MOVE:
                    // your action move code here
                        break;
                    default:
                        return false;
                }
                return true;
            }

        }
    };

最后在您的视图中添加触摸列表

fab.setOnTouchListener(simpleMethod);