2012-01-12 4 views
20

У меня есть деятельность, которая с темой Theme.Transparent, которая:удалить границу, отступы от Dialog

<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

+0

Счастливые помочь; удивился, никто не ответил на это. Это, конечно, не очевидно, но проверка источника Android на github может помочь выяснить, что происходит по умолчанию! –

+0

Жаль, что я не смог бы это сделать дважды. Примечание для peeps: обнуление windowBackground - единственный способ получить диалог для отображения FLUSH - т. Е. Без намека на представление позади него. Дэвид, ты качаешь. – HappyKatz

11

То же, что и выше, но делать это в коде, а не в xml, работал для меня.

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

Я узнал, что этот способ не работает так хорошо, как принятый ответ. Таким образом, просто исчезают любые отступы вокруг диалога, но на самом деле не удаляются дополнения. Это проблема, когда пользователь щелкает по диалогу, чтобы отменить его, но он не будет отменен, потому что отступы все еще там, но прозрачны. –

+0

Большое спасибо! Эта работа для меня! – mghhgm

+0

Отлично. Спасибо человеку – FaisalAhmed

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

Отлично, ответь! :) –

Смежные вопросы