当屏幕滚动时检测?
问题描述:
在我的应用程序中,我有一个小型的SurfaceView显示相机预览。这个surfaceView放在一个放在ScrollView中的FrameLayout中,与其他组件(比如按钮,文本视图等)一起放置。问题是,当我滚动屏幕时,surfaceView留下一个黑洞,并且这个黑洞只在屏幕重绘时填充,所以,我想重画每个滚动步骤的屏幕(是如果没有其他办法,我愿意支付业绩折让)。有人有什么想法?当屏幕滚动时检测?
答
扩展您的滚动视图,并把有
private OnScrollListener onScrollListener;
public interface OnScrollListener {
public void onScroll();
}
@Override
protected void onScrollChanged(int l, int t, int oldl, int oldt) {
if (onScrollListener != null) {
onScrollListener.onScroll();
}
super.onScrollChanged(l, t, oldl, oldt);
}
public void setOnScrollListener(OnScrollListener lst) {
this.onScrollListener = lst;
}
,那么你可以听滚动
scrollRoot.setOnScrollListener(new OnScrollListener() {
@Override
public void onScroll() {
//do something
}
});