自定義AlertDialog在android-7.0上距離螢幕邊界margin無法消除問題
阿新 • • 發佈:2019-02-18
專案中用到拍照選擇圖片功能,選擇圖片彈窗用的是自定義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
制空發現可行。最終結果如圖: