这可能是一个重复的问题,如果它是指引我的话。
我有一个带有textview的线性布局,点击那个linearlayout我想改变linearlayout的背景和textview的文本颜色
我试过onTouch的Action.Down和Action.Up, 但它干净利落。如果用户在ActionDown之后向任何方向滑动,则其颜色将保持更改,除非再次单击。
答案 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);