summaryrefslogtreecommitdiff
path: root/core/java/android/widget/FastScroller.java
diff options
context:
space:
mode:
authorThe Android Open Source Project <initial-contribution@android.com>2009-02-10 15:44:00 -0800
committerThe Android Open Source Project <initial-contribution@android.com>2009-02-10 15:44:00 -0800
commitd24b8183b93e781080b2c16c487e60d51c12da31 (patch)
treefbb89154858984eb8e41556da7e9433040d55cd4 /core/java/android/widget/FastScroller.java
parentf1e484acb594a726fb57ad0ae4cfe902c7f35858 (diff)
auto import from //branches/cupcake/...@130745
Diffstat (limited to 'core/java/android/widget/FastScroller.java')
-rw-r--r--core/java/android/widget/FastScroller.java15
1 files changed, 13 insertions, 2 deletions
diff --git a/core/java/android/widget/FastScroller.java b/core/java/android/widget/FastScroller.java
index bdcfeef859c2..57e21e4f7a41 100644
--- a/core/java/android/widget/FastScroller.java
+++ b/core/java/android/widget/FastScroller.java
@@ -34,7 +34,8 @@ import android.view.MotionEvent;
*/
class FastScroller {
-
+ // Minimum number of pages to justify showing a fast scroll thumb
+ private static int MIN_PAGES = 4;
// Scroll thumb not showing
private static final int STATE_NONE = 0;
// Not implemented yet - fade-in transition
@@ -154,6 +155,10 @@ class FastScroller {
setState(STATE_NONE);
}
+ boolean isVisible() {
+ return !(mState == STATE_NONE);
+ }
+
public void draw(Canvas canvas) {
if (mState == STATE_NONE) {
@@ -214,7 +219,13 @@ class FastScroller {
void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount,
int totalItemCount) {
-
+ // Are there enough pages to require fast scroll?
+ if (visibleItemCount > 0 && totalItemCount / visibleItemCount < MIN_PAGES) {
+ if (mState != STATE_NONE) {
+ setState(STATE_NONE);
+ }
+ return;
+ }
if (totalItemCount - visibleItemCount > 0 && mState != STATE_DRAGGING ) {
mThumbY = ((mList.getHeight() - mThumbH) * firstVisibleItem)
/ (totalItemCount - visibleItemCount);