Android7.0上PopupWindow的showAsDropDown位置问题

在Android7.0和7.1.1手机上测试发现showAsDropDown(view)展示时发现会充满屏幕,而不是展示在view的下方

解决方法

方案一:使用showAtLocation方法,指定位置
方案二:重写showAsDropDown(view),如下

    @Override
    public void showAsDropDown(View anchor) {
        if (Build.VERSION.SDK_INT >= 24){
            Rect rect = new Rect();
            anchor.getGlobalVisibleRect(rect);
            int h = anchor.getResources().getDisplayMetrics().heightPixels - rect.bottom;
            setHeight(h);
        }
        super.showAsDropDown(anchor);
    }

你可能感兴趣的:(Android7.0上PopupWindow的showAsDropDown位置问题)