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


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

有網友說是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     }

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

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

 初始化時設置了充滿屏幕,所以后面的位移就沒有了效果。

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

By LiYing


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM