File tree Expand file tree Collapse file tree
library/src/main/java/com/dx/dxloadingbutton/lib Expand file tree Collapse file tree Original file line number Diff line number Diff 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
You can’t perform that action at this time.
0 commit comments