Android 自定義Dialog小結
阿新 • • 發佈:2018-12-20
關於自定義佈局的Dialog,總是會遇到各種各樣的問題,作為一個菜鳥,想想還是打算專門開一篇總結自己遇到的各種問題。歡迎大佬們指點
自定義佈局寬度和位置問題
自定義佈局,就是自己自由地設定Dialog的樣式,所以肯定會自己寫一個Layout佈局,並把它加載出來,這才是我們想要的,但是經常會出現,明明我寫的佈局寬度是MatchParent的,但是顯示出來各種不是。或者我想讓它從底部彈出無法實現等等。
先上效果圖:
這種問題,統一可以參考下面的程式碼實現
LayoutInflater inflater = LayoutInflater.from(this); View view = inflater.inflate(R.layout.dialog_share2_layout, null); //這裡的R.id.show_main就是我的佈局,最外面的LinearLayout LinearLayout showMain = (LinearLayout) view.findViewById(R.id.show_main); //建立自定義樣式的Dialog mShareDialog = new Dialog(this, R.style.invitation_dialog); //拿到Dialog的Window, 修改Window的屬性 Window window = mShareDialog.getWindow(); //這個能讓佈局寬度填滿螢幕 window.getDecorView().setPadding(0,0,0,0); // 獲取Window的LayoutParams WindowManager.LayoutParams layoutParams = window.getAttributes(); layoutParams.width = WindowManager.LayoutParams.MATCH_PARENT; //對話方塊放底部 layoutParams.gravity = Gravity.BOTTOM; window.setAttributes(layoutParams); mShareDialog.setCancelable(true); //最後才載入自定義佈局 mShareDialog.setContentView(showMain);
後續再繼續新增……