Android 關(guān)于dialog的顯示位置設(shè)置

自定義dialog 默認(rèn)的顯示位置是window 的位置?

我們可以通過dialog或者窗口對象 window 然后通過window 去設(shè)置dialog的上下中的位置?

例如 dialog.getWindow(); 得到window對象?

window.setGravity(Gravity.CENTER); 中間位置?

window.setGravity(Gravity.BOTTEM); 底部位置?

window.setGravity(Gravity.TOP); 頂部位置?

等等 上下左右你都可以去設(shè)置

現(xiàn)在我們設(shè)定了dialog在wendow 中的位置 然而這樣并不能滿足我們的需求 我想dialog 顯示在距離頂部有一段距離的地方顯示 例如距離頂部100 的位置該怎么辦呢

有辦法 仍然是通過window去設(shè)置?

WindowManager.LayoutParams params = window.getAttributes(); 獲取window 的params 然后給params去設(shè)置x y 參數(shù)即可 我們設(shè)置的 x y 是相對值 相對自身位置的偏移量 負(fù)值無效(顯而易見 x 是代表水平方向的偏移 y 代表豎直方向的偏移)?

簡單舉個栗子

? * 當(dāng)參數(shù)值包含Gravity.LEFT時,對話框出現(xiàn)在左邊,所以params.x就表示相對左邊的偏移

? ? * 當(dāng)參數(shù)值包含Gravity.RIGHT時,對話框出現(xiàn)在右邊,所以params.x就表示相對右邊的偏移

? ? * 當(dāng)參數(shù)值包含Gravity.TOP時,對話框出現(xiàn)在上邊,所以params.y就表示相對上邊的偏移

? ? * 當(dāng)參數(shù)值包含Gravity.BOTTOM時,對話框出現(xiàn)在下邊,所以params.y就表示相對下邊的偏移

注意 負(fù)值無效

還是剛才那個需求 我有一個dialog 想讓它顯示在距離頂部100 的位置

AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());?

View view = LayoutInflater.from(getActivity()).inflate(R.layout.home_identity_choose_window,?

null);?

builder.setView(view);?

titleDialog = builder.create();?

Window window = titleDialog.getWindow();?

WindowManager.LayoutParams params = window.getAttributes();?

params.x = 10;?

params.y = 100;?

params.width = 220;?

params.height = 200;?

window.setAttributes(params);?

titleDialog.show();?

window.setGravity(Gravity.TOP);

這個就可以了

還有一種方式就是按照屏幕比例設(shè)置?

// WindowManager m = getWindowManager();?

// Display d = m.getDefaultDisplay(); // 獲取屏幕寬、高?

// WindowManager.LayoutParams params = dialogWindow.getAttributes();?

// params.height = (int) (d.getHeight() * 0.5); // 高度設(shè)置為屏幕的0.5?

// params.width = (int) (d.getWidth() * 0.6); // 寬度設(shè)置為屏幕的0.6?

// dialogWindow.setAttributes(params);?

這樣你就可以自由設(shè)置dialog的位置了

版權(quán)聲明:本文為博主原創(chuàng)文章,未經(jīng)博主允許不得轉(zhuǎn)載。?

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容