在Android 7.0以上PopupWindow.showAsDropDown()不起做用問題

最近優化界面,調用PopupWindow.showAsDropDown()發現,窗口並無在控件下方顯示。ide

有網友說是7.0以上系統的問題,能夠自定義PopupWindow,重寫showAsDropDown,以下優化

 1    @Override
 2     public void showAsDropDown(View anchor) {
 3         if(Build.VERSION.SDK_INT >= 24) {
 4             Rect rect = new Rect();
 5             anchor.getGlobalVisibleRect(rect);
 6             int h = anchor.getResources().getDisplayMetrics().heightPixels - rect.bottom;
 7             setHeight(h);
 8         }
 9         super.showAsDropDown(anchor);
10     }

 發現屏幕下方有一塊空缺,沒有鋪滿整個屏幕,有網友說是由於ui

new MyPopupWindow(contentView, ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT);

 初始化時設置了充滿屏幕,因此後面的位移就沒有了效果。spa

最終嘗試將PopupWindow的高度準確計算出來,再去調用showAsDropDown(),這樣就能實現了~ 最好不要重寫showAsDropDown啦!code

By LiYingblog

相關文章
相關標籤/搜索