Android - PopupWindow above a specific view

前端 未结 8 465
孤城傲影
孤城傲影 2020-12-30 23:50

I am developing an application for Android and I am using a popup window when the user clicks a specific menu bar object(consisting of small images lined up horizontally) on

相关标签:
8条回答
  • 2020-12-30 23:53

    You just needed to move the popupWindow by the height of its anchor using the yoff parameter in the showAsDropDown(View anchor, int xoff, int yoff) syntax.

    popupWindow.showAsDropDown(anchor, 0, -anchor.getHeight()+popupView.getHeight);
    

    Also, be aware that if the max height allowed to anchor does not allow for the transformation, the popup might not show up properly.

    0 讨论(0)
  • 2020-12-30 23:59
    popupWindow.showAtLocation(anchor, Gravity.BOTTOM, 0, anchor.getHeight());
    
    0 讨论(0)
  • 2020-12-30 23:59

    I have this code: PopupWindow below a specific view (Gravity End) for all sdk version.

            // display the popup[![enter image description here][1]][1]
            if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
                mPopupWindow.showAsDropDown(v, 0, 0, Gravity.END);
            } else {
                mPopupWindow.showAsDropDown(v, v.getWidth() - mPopupWindow.getWidth(), 0);
            }
    

    Here View v is ImageButton Calendar.

    0 讨论(0)
  • 2020-12-30 23:59

    you can display the popup always above the anchor by following

    popupWindow.showAsDropDown(anchor, 0, -anchor.getHeight()-popupView.getHeight);
    
    0 讨论(0)
  • 2020-12-31 00:04

    popupWindow.showAtLocation(...) actually shows the window absolutely positioned on the screen (not even the application). The anchor in that call is only used for its window token. The coordinates are offsets from the given gravity.

    What you actually want to use is:

    popupWindow.showAsDropDown(anchor, offsetX, offsetY, gravity);
    

    This call is only available in API 19+, so in earlier versions you need to use:

    popupWindow.showAsDropdown(anchor, offsetX, offsetY);
    

    These calls show the popup window relative to the specified anchor view. Note that the default gravity (when calling without specified gravity) is Gravity.TOP|Gravity.START so if you are explicitly using Gravity.LEFT in various spots in your app you will have a bad time :)

    0 讨论(0)
  • 2020-12-31 00:13

    popupwindow.showAsDropDown(anchor,0, -125); this thing work for me

    0 讨论(0)
提交回复
热议问题