美文网首页
如何判断当前View对用户是否可见?

如何判断当前View对用户是否可见?

作者: 好学人 | 来源:发表于2021-05-08 10:53 被阅读0次
    public class ViewUtils {
    
        private static class InitFactory {
            private static final Rect RECT = new Rect();
        }
    
        /**
         * 当前View是否对用户可见
         */
        public static boolean isVisibleToUser(View view) {
            // 判断当前View及其父View是否可见
            boolean isShown = view.isShown();
            // 判断当前View所在的Window是否可见
            boolean hasWindowFocus = view.hasWindowFocus();
            boolean isWindowVisible = view.getWindowVisibility() == View.VISIBLE;
            // 是否在屏幕的显示区域内
            boolean globalVisible = view.getGlobalVisibleRect(InitFactory.RECT);
            // 综合判断当前View是否可见
            return isShown && hasWindowFocus && isWindowVisible && globalVisible;
        }
    }
    

    相关文章

      网友评论

          本文标题:如何判断当前View对用户是否可见?

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