2012-05-02 37 views
14

如何顯示自定義對話框作爲容器的中心的中心顯示自定義對話框?安卓:在容器

Dialog customdialog = new Dialog(this,android.R.style.Theme_Translucent_NoTitleBar); 
Window window = customdialog.getWindow(); 
window.setLayout(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT); 
window.setGravity(Gravity.CENTER); 

R.style.Theme_Translucent_NoTitleBar - 用於刪除cutomdialog的邊框。一旦我使用了這一行,對話框就會出現在平板電腦的右側角落。

誰能幫我解決這個問題?

+0

去除邊框創建自定義的背景和它添加到樣式<項目名稱=「機器人:windowBackground」> @安卓:彩色/透明 –

回答

37

將fill_parent更改爲wrap_content.I希望這將成爲對話框出現在活動角落的問題。它佔用了整個佈局的空間。所以改變它可以幫助你獲得你真正想要的東西。

Window window = customdialog.getWindow(); 
window.setLayout(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT); 
window.setGravity(Gravity.CENTER); 
+1

感謝。它工作正常。 – Kamal

+1

接受的答案,upvoting這將有助於我們既提高了信譽所以,請做同樣與此ANS @Kamal很高興能幫助你。:-) –

+0

這對我的作品......非常感謝這充分使用回答。 – Deepak

8

我將此添加到對話框的自定義樣式,它工作正常。

<item name="android:layout_gravity">center</item> 

我的對話框的寬度和高度設置爲wrap_content。風格的母公司是

父=「@安卓風格/ Theme.Light」

0

我會去這一段代碼:

 WindowManager.LayoutParams lp = new WindowManager.LayoutParams(); 
     Window window = dialog.getWindow(); 
     lp.copyFrom(window.getAttributes()); 
     //This makes the dialog take up the full width 
     lp.width = WindowManager.LayoutParams.MATCH_PARENT; 
     lp.height = WindowManager.LayoutParams.MATCH_PARENT; 
     window.setAttributes(lp); 

哪裏對話框,是對話的對象,以顯示。在對話框佈局的內部,您可以根據需要定義佈局視圖:居中或不居中。