我想在用户滚动> 90%时做一些事情,所以我想我可以像在ListView中一样添加onScrollListener。不幸的是,ScrollView似乎没有类似的方法。有什么方法可以做我想做的事;当用户向下滚动约90%时收到通知?
谢谢, 埃里克
答案 0 :(得分:12)
这就是我最终要知道用户是否与我的ScrollView
进行交互:
findViewById(R.id.scrollview).setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
switch (event.getAction()) {
case MotionEvent.ACTION_SCROLL:
case MotionEvent.ACTION_MOVE:
setScrollState(OnScrollListener.SCROLL_STATE_FLING);
break;
case MotionEvent.ACTION_DOWN:
setScrollState(OnScrollListener.SCROLL_STATE_TOUCH_SCROLL);
break;
case MotionEvent.ACTION_CANCEL:
case MotionEvent.ACTION_UP:
setScrollState(OnScrollListener.SCROLL_STATE_IDLE);
break;
}
return false;
}
});
答案 1 :(得分:5)
您可以尝试扩展ScrollView
并覆盖View#onScrollChanged
并在那里进行检查。您必须延长ScrollView
,因为onScrollChanged
是受保护的方法。
答案 2 :(得分:0)
您可以使用this link获取所需内容。
答案 3 :(得分:0)
您可以实现onTouchListener并使用视图的getScrollX和getScrollY回调
答案 4 :(得分:-1)
如果你想要一个像listview一样工作的滚动视图,我可以建议你尝试一个水平的listView库:
https://github.com/sephiroth74/HorizontalVariableListView
它基于原始的ListView,效果非常好。
它有OnScrollListener,即使该网站说它支持Android 2.3及更高版本,我认为它应该适用于API 7及更高版本(并且有些调整甚至更旧)。