美文网首页
2018-03-14工作日志,判断View完全显示

2018-03-14工作日志,判断View完全显示

作者: IT枫 | 来源:发表于2018-03-14 15:20 被阅读12次
     public boolean isViewCovered(final View view) {
    View currentView = view;
    Rect currentViewRect = new Rect();  
        boolean partVisible = currentView.getGlobalVisibleRect(currentViewRect);  
        boolean totalHeightVisible = (currentViewRect.bottom - currentViewRect.top) >= view.getMeasuredHeight();  
        boolean totalWidthVisible = (currentViewRect.right - currentViewRect.left) >= view.getMeasuredWidth();  
        boolean totalViewVisible = partVisible && totalHeightVisible && totalWidthVisible;  
        // if any part of the view is clipped by any of its parents,return true  
        if (!totalViewVisible)  
            return true;  
      
        while (currentView.getParent() instanceof ViewGroup) {  
            ViewGroup currentParent = (ViewGroup) currentView.getParent();  
            // if the parent of view is not visible,return true  
            if (currentParent.getVisibility() != View.VISIBLE)  
                return true;  
      
            int start = indexOfViewInParent(currentView, currentParent);  
            for (int i = start + 1; i < currentParent.getChildCount(); i++) {  
                Rect viewRect = new Rect();  
                view.getGlobalVisibleRect(viewRect);  
                View otherView = currentParent.getChildAt(i);  
                Rect otherViewRect = new Rect();  
                otherView.getGlobalVisibleRect(otherViewRect);  
                // if view intersects its older brother(covered),return true  
                if (Rect.intersects(viewRect, otherViewRect))  
                    return true;  
            }  
            currentView = currentParent;  
        }  
        return false;  
        }  
                  
        private int indexOfViewInParent(View view, ViewGroup parent) {  
        int index;  
        for (index = 0; index < parent.getChildCount(); index++) {  
            if (parent.getChildAt(index) == view)  
                break;  
        }  
        return index;  
        }  
    

    相关文章

      网友评论

          本文标题:2018-03-14工作日志,判断View完全显示

          本文链接:https://www.haomeiwen.com/subject/ybmfqftx.html