任何人都可以告诉我为什么我无法在以下代码中调用onOverScrolled:
public class KasOverScrollListenableListView extends ListView {
public interface OverScrollListener{
void onOverScroll(int scrollx, int scrollY,boolean clampedX, boolean clampedY );
}
private OverScrollListener mOverScrollListener= null;
public KasOverScrollListenableListView(Context context, AttributeSet attrs,
int defStyle) {
super(context, attrs, defStyle);
}
public KasOverScrollListenableListView(Context context, AttributeSet attrs){
this(context,attrs,0);
}
public KasOverScrollListenableListView(Context context){
this(context,null,0);
}
protected void onOverScroll(int scrollX, int scrollY, boolean clampedX, boolean clampedY){
Log.i("overScrolling", "overScrolling is " + scrollY);
// if the version of the system higher than 2.3 then do the following things.
if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.GINGERBREAD){
// super.onOverScrolled(scrollX, scrollY, clampedX, clampedY);
if(null != mOverScrollListener ){
mOverScrollListener.onOverScroll(scrollX, scrollY, clampedX, clampedY);
}
}
}
public void setOnOverScrollListener(OverScrollListener listener){
mOverScrollListener = listener;
}
}
我永远无法输出日志,这意味着这个函数从未被调用,而这个列表视图实际上已经过度滚动。我真的很感激听到你的想法。
答案 0 :(得分:1)
不确定这是否有帮助,但以下链接中的示例调用super.overScrollBy(...)。我可以使用此代码访问onOverScroll。希望它有所帮助...
答案 1 :(得分:0)
只是......如果它需要某人。我在Github上分享了工作样本。
在2.3 +上正常工作
答案 2 :(得分:0)
该方法为onOverScrolled
,而非onOverScroll
。
您可以通过将@Override
放在方法签名之上来检测这些错误。如果您确实覆盖了某个方法,编译器会通知您。