31
31
import android .graphics .Rect ;
32
32
import android .graphics .RectF ;
33
33
import android .util .AttributeSet ;
34
+ import android .util .Log ;
34
35
import android .view .MotionEvent ;
35
36
import android .view .View ;
36
37
import android .widget .LinearLayout ;
@@ -57,6 +58,7 @@ static final private class GraphViewConfig {
57
58
private class GraphViewContentView extends View {
58
59
private float lastTouchEventX ;
59
60
private float graphwidth ;
61
+ private boolean scrollingStarted ;
60
62
61
63
/**
62
64
* @param context
@@ -195,23 +197,32 @@ public boolean onTouchEvent(MotionEvent event) {
195
197
handled = scaleDetector .isInProgress ();
196
198
}
197
199
if (!handled ) {
200
+ Log .d ("GraphView" , "on touch event scale not handled+" +lastTouchEventX );
198
201
// if not scaled, scroll
199
202
if ((event .getAction () & MotionEvent .ACTION_DOWN ) == MotionEvent .ACTION_DOWN ) {
203
+ scrollingStarted = true ;
200
204
handled = true ;
201
205
}
202
206
if ((event .getAction () & MotionEvent .ACTION_UP ) == MotionEvent .ACTION_UP ) {
207
+ scrollingStarted = false ;
203
208
lastTouchEventX = 0 ;
204
209
handled = true ;
205
210
}
206
211
if ((event .getAction () & MotionEvent .ACTION_MOVE ) == MotionEvent .ACTION_MOVE ) {
207
- if (lastTouchEventX != 0 ) {
208
- onMoveGesture (event .getX () - lastTouchEventX );
212
+ if (scrollingStarted ) {
213
+ if (lastTouchEventX != 0 ) {
214
+ onMoveGesture (event .getX () - lastTouchEventX );
215
+ }
216
+ lastTouchEventX = event .getX ();
217
+ handled = true ;
209
218
}
210
- lastTouchEventX = event .getX ();
211
- handled = true ;
212
219
}
213
220
if (handled )
214
221
invalidate ();
222
+ } else {
223
+ // currently scaling
224
+ scrollingStarted = false ;
225
+ lastTouchEventX = 0 ;
215
226
}
216
227
return handled ;
217
228
}
0 commit comments