Popupwindow现在已经与我们的开发息息相关,弹框之类的效果 大部分与之有关。
今天就说说 7.0 版本与之前版本的差别
7.0版本之前这样使用时没有问题 但7.0做了一些修改 popupwindow 设置宽 高 设置为为match_parent, 显示位置就总是在屏幕最上方覆盖整个屏幕,而不是在view的下方,看源码
83DEBB75-F735-40B2-AAF7-001CCBAEB08E.png
下面上几张图 对比下
6.0版本:
device-2016-12-23-101745.png
7.0版本:
device-2016-12-23-102001.png
通过查看文档 发现这个方法可以解决
0BEED137-A447-4BFE-8EBB-0A80518FF125.png
因此我做了以下判断
C3F0D947-C0C9-4407-AFA8-FDD86FAE31FB.png
主要是这个方法
popupWindow.showAtLocation(mView, Gravity.NO_GRAVITY, 0, mView.getHeight() + statusBarHeight1);
看最后一个参数也就是Y的值
我通过获取状态栏的尺寸,方法:
int statusBarHeight1 = -1;
//获取status_bar_height资源的
IDint resourceId =mContext.getResources().getIdentifier("status_bar_height", "dimen", "android");
if (resourceId > 0) {
//根据资源ID获取响应的状态栏尺寸 statusBarHeight1 = mContext.getResources().getDimensionPixelSize(resourceId);
}
然后再加上view的高度
就完美解决这个问题了
项目地址:https://github.com/Johnjson/PopWindow
网友评论