PopupWindow位于某些设备的状态栏之上

时间:2017-01-03 09:15:36

标签: android popupwindow sony nexus-s

以下是我展示PopupWindow

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

当我在SamsungNexus设备上对其进行测试时,状态栏上显示 但是,当我在Sony设备上对其进行测试时,它会显示上方状态栏(如下图所示)

那么哪个设备显示正确或我做错了什么? 任何帮助或建议将非常感谢

enter image description here

1 个答案:

答案 0 :(得分:1)

我通过在Viewtop-left下面的代码中创建 temp topLeftView来解决我的问题。
然后当我显示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]);

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