From 63ac4e7195d2d75fb5262b34a4ba431b0a8e9089 Mon Sep 17 00:00:00 2001 From: sunkencity Date: Sun, 6 Nov 2011 12:26:43 +0100 Subject: [PATCH] Added a naive fix to enable scrolling when the list is too short --- .../android/widget/PullToRefreshListView.java | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/pulltorefresh/src/com/markupartist/android/widget/PullToRefreshListView.java b/pulltorefresh/src/com/markupartist/android/widget/PullToRefreshListView.java index e44db80..d15671f 100644 --- a/pulltorefresh/src/com/markupartist/android/widget/PullToRefreshListView.java +++ b/pulltorefresh/src/com/markupartist/android/widget/PullToRefreshListView.java @@ -5,6 +5,7 @@ import java.lang.reflect.Method; import android.content.Context; +import android.graphics.Canvas; import android.util.AttributeSet; import android.util.Log; import android.view.LayoutInflater; @@ -56,6 +57,7 @@ public class PullToRefreshListView extends ListView implements OnScrollListener private int mRefreshViewHeight; private int mRefreshOriginalTopPadding; private int mLastMotionY; + private int mHeight = -1; private boolean mBounceHack; @@ -116,6 +118,22 @@ private void init(Context context) { measureView(mRefreshView); mRefreshViewHeight = mRefreshView.getMeasuredHeight(); } + + @Override + protected void onDraw(Canvas canvas) { + super.onDraw(canvas); + if (mHeight == -1) { // do it only once + mHeight = getHeight(); // getHeight only returns useful data after first onDraw() + int scrollRange = this.computeVerticalScrollRange(); + if (scrollRange < mHeight) { + TextView footerView = new TextView(this.getContext()); + footerView.setText(" "); + footerView.setHeight(mHeight - scrollRange + mRefreshViewHeight + 1); + addFooterView(footerView); + } + } + + } @Override protected void onAttachedToWindow() {