在我的 android 应用程序中,我有一个滚动视图,其中包含很多子视图。当视图由于用户的滚动操作而从可见切换到“用户不可见”时,如何监听事件?
问问题
336 次
2 回答
0
所以默认的 ScrollView 不提供任何类型的滚动监听器,但是onScrollChanged()
当用户滚动时它会调用,所以你可以实现你自己的:
public class YourScrollView extends ScrollView {
private ScrollListener scrollListener;
... // constructors etc
public void setScrollListener(ScrollListener scrollViewListener) {
this.scrollListener = scrollViewListener;
}
@Override
protected void onScrollChanged(int x, int y, int oldx, int oldy) {
super.onScrollChanged(x, y, oldx, oldy);
if (scrollListener != null) { //I don't care about the direction, you might.
scrollListener.onScrollChanged();
}
}
public static interface ScrollListener {
public void onScrollChanged();
}
}
现在,您onScrollChanged
可以浏览您的视图并检查它们是否可见:
int[] location = {0,0};
view.getLocationOnScreen(location);
//container height is the height of the scrollview
if (location[1] + view.getBottom() < 0 || location[1] > containerHeight) {
//your view is not visible
}
于 2012-06-09T00:04:16.803 回答
0
你想达到什么目的?也许我们可以提出其他解决方案。
您可以将onVisibilityChanged
事件处理程序添加到子视图。当视图的可见性改变时调用。可以在此处找到有关此的 Android 文档。
于 2012-06-09T00:11:53.210 回答