我有一个包含NestedScrollView的布局。在这个视图中有一个ImageView,它滚动创建与其余视图的视差效果。 ImageView以一半的速度滚动。
问题是我需要ImageView才能进行视差滚动,只有当它在屏幕范围内时。如果ImageView不在屏幕的可见部分内,我不希望它对视差代码作出反应。
有没有办法检查视图是否在屏幕的可见部分内?
我想可能会查看视图的滚动位置,但我不知道如何将其与可见屏幕的底部进行比较。
你有什么想法吗?
谢谢。
答案 0 :(得分:0)
尚未尝试过,但使用此代码,
Rect bounds = new Rect();
yourView.getHitRect(bounds);
Rect scrollBounds = new Rect(yourScroll.getScrollX(),yourScroll.getScrollY(),
yourScroll.getScrollX() + yourScroll.getWidth(), yourScroll.getScrollY() + yourScroll.getHeight());
if(Rect.intersects(scrollBounds, bounds))
{
//is in visible part of the scrollview
}