From 87cfad7d742c8fae1ac268168e2ada286d330ef1 Mon Sep 17 00:00:00 2001 From: Katie McCormick Date: Wed, 6 Feb 2013 18:15:13 -0800 Subject: Doc change: Scroller Javadoc Bug # 7966653 Change-Id: I4365946f890a76fcfa78ca9d69f2a8e0848095a9 --- core/java/android/widget/Scroller.java | 44 +++++++++++++++++++++++++++------- 1 file changed, 36 insertions(+), 8 deletions(-) diff --git a/core/java/android/widget/Scroller.java b/core/java/android/widget/Scroller.java index 3a28e75e8823..3bfd39d80baa 100644 --- a/core/java/android/widget/Scroller.java +++ b/core/java/android/widget/Scroller.java @@ -26,11 +26,39 @@ import android.view.animation.Interpolator; /** - * This class encapsulates scrolling. The duration of the scroll - * can be passed in the constructor and specifies the maximum time that - * the scrolling animation should take. Past this time, the scrolling is - * automatically moved to its final stage and computeScrollOffset() - * will always return false to indicate that scrolling is over. + *

This class encapsulates scrolling. You can use scrollers ({@link Scroller} + * or {@link OverScroller}) to collect the data you need to produce a scrolling + * animation—for example, in response to a fling gesture. Scrollers track + * scroll offsets for you over time, but they don't automatically apply those + * positions to your view. It's your responsibility to get and apply new + * coordinates at a rate that will make the scrolling animation look smooth.

+ * + *

Here is a simple example:

+ * + *
 private Scroller mScroller = new Scroller(context);
+ * ...
+ * public void zoomIn() {
+ *     // Revert any animation currently in progress
+ *     mScroller.forceFinished(true);
+ *     // Start scrolling by providing a starting point and
+ *     // the distance to travel
+ *     mScroller.startScroll(0, 0, 100, 0);
+ *     // Invalidate to request a redraw
+ *     invalidate();
+ * }
+ * + *

To track the changing positions of the x/y coordinates, use + * {@link #computeScrollOffset}. The method returns a boolean to indicate + * whether the scroller is finished. If it isn't, it means that a fling or + * programmatic pan operation is still in progress. You can use this method to + * find the current offsets of the x and y coordinates, for example:

+ * + *
if (mScroller.computeScrollOffset()) {
+ *     // Get current x and y positions
+ *     int currX = mScroller.getCurrX();
+ *     int currY = mScroller.getCurrY();
+ *    ...
+ * }
*/ public class Scroller { private int mMode; @@ -272,8 +300,7 @@ public class Scroller { /** * Call this when you want to know the new location. If it returns true, - * the animation is not yet finished. loc will be altered to provide the - * new location. + * the animation is not yet finished. */ public boolean computeScrollOffset() { if (mFinished) { @@ -355,7 +382,8 @@ public class Scroller { } /** - * Start scrolling by providing a starting point and the distance to travel. + * Start scrolling by providing a starting point, the distance to travel, + * and the duration of the scroll. * * @param startX Starting horizontal scroll offset in pixels. Positive * numbers will scroll the content to the left. -- cgit v1.2.3-59-g8ed1b