1. 程式人生 > >自定義AlertDialog在android-7.0上距離螢幕邊界margin無法消除問題

自定義AlertDialog在android-7.0上距離螢幕邊界margin無法消除問題

專案中用到拍照選擇圖片功能,選擇圖片彈窗用的是自定義AlertDialog。這個沒什麼難度。UI要求 對話方塊寬度鋪滿,底部在螢幕底部,無margin和padding。這個是實現起來挺簡單的。想著佈局裡邊不加margin和padding不久ok了

       但是在自己手機小米5(android-7.0版本)安裝看了下(順帶說一下小米5  在7.0版本下竟然不能連線androidstudio安裝除錯應用,這個有點扯),竟然有一塊區域無法充滿。如下圖:


      後來和同事討論會不會是AlertDialog預設主題的原因。

WindowManager m = getWindow().getWindowManager();
        Display d = m.getDefaultDisplay(); // 獲取螢幕寬、高用
        WindowManager.LayoutParams p = getWindow().getAttributes();
        p.width = (int) (d.getWidth()); // 寬度設定為螢幕的k寬
//        if(height > 0){
//            p.height = (int) (d.getHeight() * height);
//        }
       p.horizontalMargin = 0.0f;
        p.verticalMargin = 0.0f;


嘗試瞭如上程式碼,還是沒能解決問題。
 getWindow().setBackgroundDrawable(null);
再次嘗試把dialog視窗
BackgroundDrawable
制空發現可行。最終結果如圖: