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对用户是否可见?
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- 前言 最近在重构项目时,导航滑动使用activity嵌套fragment,在fragment中需要判断此fragm...
- 用MD5验证文件的完整性!(仅仅通过代码来判断当前次的请求发送结束或者收到数据结束不可以的) 当客户端上传一个文件...