0
            throw new IllegalStateException("setContentView was not called with a view to display.");
        } 
        onShow(); 
 
        if (this.background == null) {
            this.window.setBackgroundDrawable(new BitmapDrawable());
        } else { 
            this.window.setBackgroundDrawable(this.background);
        } 
 
        // if using PopupWindow#setBackgroundDrawable this is the only values of 
        // the width and hight that make it work 
        // otherwise you need to set the background of the root viewgroup 
        // and set the popupwindow background to an empty BitmapDrawable 
        this.window.setWidth(WindowManager.LayoutParams.WRAP_CONTENT);
        this.window.setHeight(WindowManager.LayoutParams.WRAP_CONTENT);
        this.window.setTouchable(true);
        this.window.setFocusable(true);
        this.window.setOutsideTouchable(true);
 
        this.window.setContentView(this.root);
    } 
 
    public void setBackgroundDrawable(Drawable background) {
        this.background = background;
    } 
 
    /** 
     * Sets the content view. Probably should be called from {@link onCreate} 
     * 
     * @param root the view the popup will display 
     */ 
    public void setContentView(View root) {
        this.root = root;
        this.window.setContentView(root);
    } 
 
    /** 
     * Will inflate and set the view from a resource id 
     * 
     * @param layoutResID 
     */ 
    public void setContentView(int layoutResID) {
        LayoutInflater inflator = (LayoutInflater) this.anchor.getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        this.setContentView(inflator.inflate(layoutResID, null));
    } 
 
    /** 
     * If you want to do anything when {@link dismiss} is called 
     * 
     * @param listener 
     */ 
    public void setOnDismissListener(PopupWindow.OnDismissListener listener) {
        this.window.setOnDismissListener(listener);
    } 
 
    /** 
     * Displays like a popdown menu from the anchor view 
     */ 
    public void showLikePopDownMenu() { 
        this.showLikePopDownMenu(0, 0);
    } 
 
    /** 
     * Displays like a popdown menu from the anchor view. 
     * 
     * @param xOffset offset in X direction 
     * @param yOffset offset in Y direction 
     */ 
    public void showLikePopDownMenu(int xOffset, int yOffset) {
        this.preShow();
 
        // this.window.setAnimationStyle(R.style.Animations_PopDownMenu); 
 
        this.window.showAsDropDown(this.anchor, xOffset, yOffset);
    } 
 
    /** 
     * Displays like a QuickAction from the anchor view. 
     */