Hi, Was anyone able to resolve this ? I have the same issue as well. After startScroll, if I do getCurrX, I can see the new x value but the view does not move. I think the view is not being attached to the scroller.
Thanks, -Naseer On Mar 10, 1:59 am, oyobyaw <[email protected]> wrote: > Hello, > > I am trying to implement a custom WebView and override OnTouchEvent() > so that a tap near the bottom of the screen would result in the view > smoothly scrolling down one ‘page’ (and a tap at the top would result > in a smooth upward scroll). > > I’ve been looking at the Scroller Widget to do the animated scrolling > but can’t seem to figure out how to make it work right. I found an > example of how to use a Scroller to animate a TextView (http://bear- > polka.blogspot.com/2009/01/scrolltextview-scrolling-textview- > for.html), but TextViews have a setScroller() method to attach a > Scroller to that view. > > How can you attach and use a Scroller in a View that does not expose a > setScroller() method? > > Below is the relevant section of my code: > > private Scroller mScroller; > private static final long TAP_THRESHHOLD = 300; //ms > private float mDownY = 0; > private int mHeight = 0; > private int mWidth = 0; > > public MyWebView(Context context, ChapterNavigator cn) { > super(context); > mScroller = new Scroller(context); > > } > > @Override > public boolean onTouchEvent(MotionEvent event) { > Log.v(TAG, "onTouchEvent"); > final int action = event.getAction(); > > if (action == MotionEvent.ACTION_DOWN) { > //Abort scrolling animation if not finished yet > if (!mScroller.isFinished()) { > Log.v(TAG, "aborting scroll"); > mScroller.abortAnimation(); > } > mDownY = event.getY(); > } > else if (action == MotionEvent.ACTION_UP) { > //Detect if we had a TAP > if(event.getEventTime() - event.getDownTime() < TAP_THRESHHOLD) > { > if(event.getX() < mHeight/2 ) { > mScroller.startScroll(0, mDownScrollY, 0, -mHeight, 1000); > } > else { > mScroller.startScroll(0, mDownScrollY, 0, mHeight, 1000); > } > } > } > return true; > > } > > @Override > protected void onSizeChanged(int w, int h, int ow, int oh) { > super.onSizeChanged(w, h, ow, oh); > mWidth = w; > mHeight = h; > > } > > I’d greatly appreciate any pointer or suggestion. > > Thanks --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Android Developers" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/android-developers?hl=en -~----------~----~----~----~------~----~------~--~---

