小弟最近在做项目的时候遇到一个状态栏遮挡popwindow的问题,找 了半天也没有人遇到过同样的问题,故写了此篇文章记录一下!
废话不多说,首先看我遇到的问题的效果图!
因为是fragment,在获取View的时候用的是
View parent = getActivity().getWindow().getDecorView();
来获取,所以可能获取的时候把整个屏幕获取到了,
解决办法
Rect rectangle= new Rect();
Window window= getActivity().getWindow();
//获取到手机状态栏的高度
window.getDecorView().getWindowVisibleDisplayFrame(rectangle);
int statusBarHeight= rectangle.top;
//动态设置状态栏的高度
popwindow.setHeight(parent.getMeasuredHeight()-statusBarHeight);
//并将popwindow的显示的初始位置的顶部也就是Y坐标开始显示
popwindow.showAtLocation(parent, Gravity.TOP,0,statusBarHeight);
主要核心代码就是这些
来看修改后的显示效果
初次写博客,希望各位大牛们多担待了,有更好的方法希望大牛们留言给大家,方便大家学习交流!