我使用以下
获取视图顶部坐标view.getTop();
这将最初返回0,并且在布局之后,它将根据marginTop()设置得到正确的坐标。
我的问题,从视图来看,我们怎么能知道视图是否相应布局(例如getTop返回正确的值)?
我的使用场景如下。我试图在onScroll期间获取视图坐标,但这将在视图初始化时首次调用,因此getTop()
返回0,这是第一次不正确的值。我想避免考虑这种情况......但只有当它具有正确的值时才启动onScroll侦听器。
myList.addOnScrollListener(new RecyclerView.OnScrollListener() {
@Override
public void onScrolled(RecyclerView recyclerView, int dx, int dy) {
super.onScrolled(recyclerView, dx, dy);
int top = view.getTop();
}
});
答案 0 :(得分:2)
ViewTreeObserver viewTreeObserver = view.getViewTreeObserver();
viewTreeObserver.addOnGlobalLayoutListener(new OnGlobalLayoutListener() {
@Override
public void onGlobalLayout () {
int top = view.getTop();
}
}