Skip to content

Commit e3c331a

Browse files
author
Bernd Kampl
committed
Register clicks only when finger is lifted inside the Button
1 parent f093698 commit e3c331a

1 file changed

Lines changed: 13 additions & 4 deletions

File tree

library/src/main/java/com/dx/dxloadingbutton/lib/LoadingButton.java

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -210,20 +210,29 @@ public boolean performClick() {
210210
@SuppressLint("ClickableViewAccessibility")
211211
@Override
212212
public boolean onTouchEvent(MotionEvent event) {
213-
if(!isEnabled()){
213+
if(!isEnabled()) {
214214
return true;
215215
}
216-
switch (event.getAction()){
216+
switch (event.getAction()) {
217217
case MotionEvent.ACTION_DOWN:
218218
mTouchX = event.getX();
219219
mTouchY = event.getY();
220220
playRippleAnimation(true);
221221
break;
222222
case MotionEvent.ACTION_UP:
223-
playRippleAnimation(false);
223+
if ((event.getX() > mButtonRectF.left && event.getX() < mButtonRectF.right) &&
224+
(event.getY() > mButtonRectF.top && event.getY() < mButtonRectF.bottom)) {
225+
// only register as click if finger is up inside view
226+
playRippleAnimation(false);
227+
} else {
228+
// if finger is moved outside view and lifted up, reset
229+
mTouchX = 0;
230+
mTouchY = 0;
231+
mRippleRadius = 0;
232+
invalidate();
233+
}
224234
break;
225235
}
226-
227236
return true;
228237
}
229238

0 commit comments

Comments
 (0)