【发布时间】:2013-10-20 11:44:15
【问题描述】:
我想在用户滚动列表视图时显示/隐藏视图。
如何检测过度滚动?有听众吗?
我试过OnScrollListener,但它只通知onScrollStateChanged和onScroll
【问题讨论】:
-
你到现在都做了什么?请至少发布一些代码。
标签: android listview overscroll
我想在用户滚动列表视图时显示/隐藏视图。
如何检测过度滚动?有听众吗?
我试过OnScrollListener,但它只通知onScrollStateChanged和onScroll
【问题讨论】:
标签: android listview overscroll
您可以重写方法onOverScrolled,因为它是respond to the results of an over-scroll operation.
【讨论】:
只是更完整的答案
@Override
protected void onOverScrolled(int scrollX, int scrollY, boolean clampedX, boolean clampedY) {
super.onOverScrolled(scrollX, scrollY, clampedX, clampedY);
View view = (View) getChildAt(getChildCount()-1);
int diff = (view.getBottom()-(getHeight()+getScrollY()));
if(diff==0) {
//overscroll on bottom
} else {
//overscroll on top
}
}
【讨论】:
scrollY = 非零和clampedY = true --> OverScroll 状态发生在从下到上滚动时
scrollY = 零和clampedY = true --> OverScroll 状态发生在从上到下滚动时
所以
@Override
protected void onOverScrolled(int scrollX, int scrollY, boolean clampedX, boolean clampedY) {
super.onOverScrolled(scrollX, scrollY, clampedX, clampedY);
if(clampedY){
if(scrollY==0){
//over Scroll at top
}else {
//over Scroll at Bottom
}
}
}
【讨论】: