PopupWindow is above status bar in some device


Here is my code for show a PopupWindow

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

When I test it on Samsung, Nexus device it show below the status bar
However when I test it on Sony device it show above the status bar (like the image below)

So which device display correct or what I do wrong ? Any help or suggestion would be great appreciated

enter image description here

Show source
| android   | popupwindow   | sony   | samsung   2017-01-03 10:01 1 Answers

Answers ( 1 )

  1. 2017-01-04 02:01

    I solve my problem by create a temp View at top-left (topLeftView).
    Then when I show the PopupWindow I will show it at (0, the y coordinate of topLeftView) not (0,0)

    View topLeftView = findViewById(R.id.top_left_View);
    int topLeftPos[] = new int[2];
    mPopupWindow.showAtLocation(topLeftView, Gravity.NO_GRAVITY, 0, topLeftPos[1]);

    I think this solution will work for all devices

◀ Go back