2012-01-12 119 views
20

刪除邊框,填充我有一個活動是與主題Theme.Transparent是:從對話框

<style name="Theme.Transparent" parent="android:Theme.Dialog"> 
    <item name="android:windowIsTranslucent">true</item> 
    <item name="android:windowNoTitle">false</item> 
    <item name="android:windowIsFloating">true</item> 
    <item name="android:backgroundDimEnabled">false</item> 
    <item name="android:gravity">top</item> 
</style> 

我試圖擺脫邊框和它周圍的填充..我想使填充屏幕的水平。並沒有灰色邊框。 請幫助:) enter image description here

回答

71

一定要創建對話框引用您的自定義主題:

Dialog dialog = new Dialog(this, R.style.MyDialogTheme); 

您的自定義主題,需要填充的屏幕和禁用幾個Android framework defaults

<?xml version="1.0" encoding="utf-8"?> 
<resources> 
    <style name="MyDialogTheme" parent="android:Theme.Dialog"> 
     <!-- Fill the screen --> 
     <item name="android:layout_width">fill_parent</item> 
     <item name="android:layout_height">fill_parent</item> 

     <!-- No backgrounds, titles or window float --> 
     <item name="android:windowBackground">@null</item> 
     <item name="android:windowNoTitle">true</item> 
     <item name="android:windowIsFloating">false</item>  

     <!-- Just to prove it's working --> 
     <item name="android:background">#ff0000</item> 
    </style> 

</resources> 
+0

謝謝! :) @ null 明白了! 我只能在17個小時內獎勵賞金。但我會。非常感謝。 – Guy 2012-01-16 14:35:41

+0

樂於助人;其他人都沒有回答這個問題。這當然不是很明顯,但在github上檢查Android源代碼可以幫助找出默認情況下發生的事情! – 2012-01-16 16:13:45

+0

我希望我能這兩次upvote。請注意:窺視windowBackground是讓對話顯示FLUSH的唯一方法 - 即不顯示背後的視圖。大衛,你搖滾。 – HappyKatz 2015-12-10 15:08:22

11

與上面相同,但在代碼而不是xml中爲我工作。

getDialog().getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT)); 
+0

我發現這種方式不如接受的答案。這種方式只是淡化對話框周圍的任何填充,但並未真正移除填充。當用戶點擊對話框取消它時,這是一個問題,但它不會被取消,因爲填充仍在那裏但透明。 – 2014-08-10 12:33:16

+0

非常感謝你!這爲我工作! – mghhgm 2015-05-21 20:21:24

+0

太好了。謝謝你 – FaisalAhmed 2017-03-08 13:45:08

5

設置寬度和高度以匹配父容器。

dialog.requestWindowFeature(Window.FEATURE_NO_TITLE); 
    WindowManager.LayoutParams wmlp = dialog.getWindow() 
      .getAttributes(); 
    wmlp.width = android.view.WindowManager.LayoutParams.MATCH_PARENT; 
    wmlp.height = android.view.WindowManager.LayoutParams.WRAP_CONTENT; 
+0

完美,回答! :) – 2017-09-11 08:41:53