web-dev-qa-db-fra.com

supprimer la bordure, le rembourrage de la boîte de dialogue

J'ai une activité qui a pour thème Thème.Transparent qui est:

<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>

j'essaie de supprimer la bordure et le rembourrage qui la entoure .. Je veux faire remplir l'horizontale de l'écran. et pas de bordure grise. aidez s'il vous plaît:) enter image description here

24
Guy

Assurez-vous de créer votre boîte de dialogue référençant votre thème personnalisé:

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

Votre thème personnalisé doit remplir l'écran et désactiver deux paramètres par défaut du cadre Android :

<?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>
77
David Snabel-Caunt

Comme ci-dessus, mais le faire en code plutôt qu'en xml a fonctionné pour moi.

    getDialog().getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));
13
user3633840

Définissez la largeur et la hauteur en fonction du conteneur parent.

    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;
5
rajeswari ratala

Ce qui suit fonctionne parfaitement pour moi. Cela me permet d'avoir un dialogue pleine largeur (remplit la largeur de l'écran sans remplissage) mais avec wrap_content pour height et conserve tous mes autres styles que je fais dans mon constructeur:

<item name="windowMinWidthMajor">100%</item>
<item name="windowMinWidthMinor">100%</item>

<item name="Android:windowBackground">@null</item>
<item name="Android:windowIsFloating">true</item>

<item name="Android:background">#ffffff</item>

L’arrière-plan est requis ou bien il répète bizarrement, mais définissez-le simplement sur la couleur souhaitée pour l’arrière-plan de votre boîte de dialogue. WindowBackground et WindowIsFloating sont nécessaires pour que la taille soit correctement renvoyée à la ligne.

Ajoutez votre thème à votre constructeur comme suit:

constructeur = new AlertDialog.Builder (_context, R.style.DialogTheme); et vous voilà prêt à partir!

0
Elliptica