PopupWindow 在某些设备中位于状态栏上方

PopupWindow is above status bar in some device

这是我用于显示 PopupWindow

的代码
View rootView = activity.getWindow().getDecorView().getRootView();
mPopupWindow.showAtLocation(rootView, Gravity.NO_GRAVITY, 0, 0);

当我在 SamsungNexus 设备上测试它时,它显示 下方 状态栏
然而,当我在 Sony 设备上测试它时,它显示 状态栏上方(如下图)

那么哪个设备显示正确或者我哪里做错了? 任何帮助或建议将不胜感激

我通过在 top-left(下面代码中的 topLeftView)创建一个 temp View 来解决我的问题。
然后当我显示 PopupWindow 时,我会在 (0, the y coordinate of topLeftView) 显示它,而不是 (0,0)

View topLeftView = findViewById(R.id.top_left_View);
int topLeftPos[] = new int[2];
topLeftView.getLocationOnScreen(topLeftPos);

mPopupWindow.showAtLocation(topLeftView, Gravity.NO_GRAVITY, 0, topLeftPos[1]);

我认为此解决方案适用于所有设备