2014-05-07 325 views
1

asked之前关于ListView中的OverScroll。默认overScroll在许多设备上不起作用(例如:Samsung Galaxy 2,HTC One X)。所以我做了OverScrollListViewAndroid滚动查看滚动查看

但现在需要做相同的ScrollView。我制作了顶尖超卷的技巧(使用overScrollBy中的正数)。但是当我试图做同样的底部(通过在overScrollBy使用负数),滚动ScrollView滚动到顶部位置。

有人可以说为什么吗?

P.S.我也试过this。但即使在顶部(或底部)位置,滚动条指示器显示在中间的某处。 这使用户混淆...

回答

1

好吧,我想我做到了。

但它真的很奇怪。

我有反弹时的方法,我在ACTION_MOVE拨打:

private void pullDown(int deltaY, int lastY) { 
    overScrollBy(0, mSlowEffect ? (int)getOverScrollYWithSlow(deltaY) : deltaY, 0, lastY, 5, 5, 0, mMaxYOverscrollDistance, true); 
} 

对于ListView控件的反弹时我只设置移动deltaY像pullDown(lastScroll, 0);

它同时适用于:顶部和底部反弹时。

但对于ScrollView,它不适用于底部过卷。所以我们应该发送到此方法也当前scrollY位置,如pullDown(lastScroll , lastY);

我分享整个代码Github,如果有人感兴趣。