我的 Activity 中有一个 View 。我想检测它何时因任何操作(用户滚动、相对 View 调整大小、移动内容等)而在屏幕上移动。这意味着在一个库中,所以我可以查询层次结构,但我不控制它,除了添加事件监听器之外我也不能修改它。
有什么方法可以将其作为事件而不是轮询?
最佳答案
有一个事件:View.getViewTreeObserver().addOnScrollChangedListener()
final ViewTreeObserver.OnScrollChangedListener mScrollChangedListener = ...;
@Override
protected void onAttachedToWindow() {
super.onAttachedToWindow();
getViewTreeObserver().addOnScrollChangedListener(mScrollChangedListener);
}
@Override
protected void onDetachedFromWindow() {
super.onDetachedFromWindow();
getViewTreeObserver().removeOnScrollChangedListener(mScrollChangedListener);
}
来源:Android源代码(4.0),android.view.SurfaceView.java:205
关于android - 如何检测我的 View 何时移动?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9614383/