我在布局中使用 HorizontalScrollView
,我需要确定用户已经到达滚动的起点和终点。
对于 ListView
我已经尝试了 onScrollListener
并且可以找到滚动的起点和终点。
我试图在我的 Scrollview
中做同样的事情,但似乎不可能。有没有其他可能的方法来实现我的需要。
原文由 arnp 发布,翻译遵循 CC BY-SA 4.0 许可协议
我在布局中使用 HorizontalScrollView
,我需要确定用户已经到达滚动的起点和终点。
对于 ListView
我已经尝试了 onScrollListener
并且可以找到滚动的起点和终点。
我试图在我的 Scrollview
中做同样的事情,但似乎不可能。有没有其他可能的方法来实现我的需要。
原文由 arnp 发布,翻译遵循 CC BY-SA 4.0 许可协议
这可能非常有用。使用 NestedScrollView
而不是 ScrollView
。支持库 23.1 引入了 OnScrollChangeListener
到 NestedScrollView
。所以你可以做这样的事情。
myScrollView.setOnScrollChangeListener(new NestedScrollView.OnScrollChangeListener() {
@Override
public void onScrollChange(NestedScrollView v, int scrollX, int scrollY, int oldScrollX, int oldScrollY) {
Log.d("ScrollView","scrollX_"+scrollX+"_scrollY_"+scrollY+"_oldScrollX_"+oldScrollX+"_oldScrollY_"+oldScrollY);
//Do something
}
});
原文由 Midhun Vijayakumar 发布,翻译遵循 CC BY-SA 3.0 许可协议
3 回答835 阅读✓ 已解决
2 回答2.1k 阅读
2 回答956 阅读✓ 已解决
1 回答730 阅读✓ 已解决
2 回答853 阅读
2 回答788 阅读
1 回答728 阅读
View 的每个实例调用
getViewTreeObserver()
。现在,当持有ViewTreeObserver
的实例时,您可以使用方法addOnScrollChangedListener()
添加一个OnScrollChangedListener()
到它。您可以 在此处 查看有关此类的更多信息。
它让您知道每个滚动事件 - 但没有坐标。您可以通过在侦听器中使用
getScrollY()
或getScrollX()
来获取它们。