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验证文件的完整性!(仅仅通过代码来判断当前次的请求发送结束或者收到数据结束不可以的) 当客户端上传一个文件...