我正在开发一个具有scrollview的android应用程序。我已经从ScrollView覆盖了我的视图并实现了onScrollChanged方法。当滚动视图滚动并到达底部时,它会加载更多产品并将它们添加到scrollvew。我有一个奇怪的问题。第一次产品加载并且我试图向上拖动滚动视图时,onScrollChanged永远不会发生。然后我用Google搜索并找到了一些东西:
scrollView.setOnTouchListener(new ListView.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
int action = event.getAction();
switch (action) {
case MotionEvent.ACTION_DOWN:
// Disallow ScrollView to intercept touch events.
v.getParent().requestDisallowInterceptTouchEvent(false);
break;
case MotionEvent.ACTION_UP:
// Allow ScrollView to intercept touch events.
v.getParent().requestDisallowInterceptTouchEvent(true);
break;
}
// Handle ListView touch events.
v.onTouchEvent(event);
return true;
}
});
添加后,当我尝试从scrollview的空白区域拖动滚动视图时,它开始调用onScrollChanged,之后我开始从其他任何地方拖动,调用onScrollChanged。我的问题是,为什么它表现得那样?它应该从触摸事件开始的任何地方调用onScrollChanged。我希望,我很好地解释了我的观点。任何解决方案?