web-dev-qa-db-fra.com

Android activité sous forme de dialogue, mais sans barre de titre

J'ai une activité qui a pour thème:

Android:theme="@Android:style/Theme.Dialog"

Cependant, il y a une barre de titre dans la boîte de dialogue d'activité qui apparaît, qui utilise le peu d'espace disponible dont je dispose. Comment puis-je le supprimer?

68
Shade

Essayez de faire requestWindowFeature(Window.FEATURE_NO_TITLE); dans onCreate. Cela devra être fait immédiatement après avoir appelé super.onCreate et juste avant setContentView.

143
Femi

Pour ceux qui utilisent AppCompatActivity, les réponses ci-dessus peuvent ne pas fonctionner.

Essayez ceci

supportRequestWindowFeature(Window.FEATURE_NO_TITLE);

immédiatement avant setContentView(R.layout.MyDialogActivity);

109
zackygaurav

Vous pouvez définir votre propre thème:

<style name="NoTitleDialog" parent="@Android:style/Theme.Dialog">
    <item name="Android:windowNoTitle">true</item>
</style>

(Astuce du chapeau à @Rehan) Si vous utilisez la bibliothèque de compatibilité, vous devez choisir un thème parent AppCompat et laisser le Android: préfixe. Par exemple:

<style name="NoTitleDialog" parent="@style/Theme.AppCompat.Dialog">
    <item name="windowNoTitle">true</item>
</style>
107
Ted Hopp

Si vous utilisez AppCompatActivity dans lequel vous êtes obligé d'utiliser Theme.AppCompat.xxx pour tout, vous pouvez supprimer le titre de la boîte de dialogue ou la barre d'actions dans styles.xml en utilisant ceci:

<style name="Theme.MyDialog" parent="Theme.AppCompat.Light.Dialog">
    <item name="windowNoTitle">true</item>
    <item name="windowActionBar">false</item>
</style>

Remarquez l'utilisation de name="windowActionBar", au lieu de name="Android:windowActionBar".

29
Neoh

Si vous utilisez AppCompatActivity requestWindowFeature (Window.FEATURE_NO_TITLE) ne fonctionne pas.

pour cela, vous pouvez créer un thème personnalisé dans values ​​/ style.xml comme ci-dessous:

   <style name="NoTitleDialog" parent="Theme.AppCompat.Dialog.Alert">
        <item name="windowNoTitle">true</item>
    </style>

veuillez noter que le nom de l'élément: "windowNoTitle" et non le nom de l'élément: "Android: windowNoTitle"

Dans menifest.xml, appliquez ce thème personnalisé comme

<activity Android:name=".activity.YourActivity"
            Android:theme="@style/NoTitleDialog"/>

ou vous pouvez utiliser getSupportActionBar (). hide () pour masquer par programme la barre d'actions.

7
Sangram Haladkar

Celui-ci a fonctionné pour moi pour appcompat.

<style name="DialogTheme" parent="Theme.AppCompat.Light.Dialog">
    <item name="colorPrimary">@color/colorPrimary</item>
    <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
    <item name="colorAccent">@color/colorAccent</item>
    <item name="windowActionBar">false</item>
    <item name="windowNoTitle">true</item>
</style>
5
Ajji

pour les dialogues, vous pouvez le faire comme:

Dialog dialog = new Dialog(context);
dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
1
AnhSirk Dasarp

Celui-ci a fonctionné pour moi.

J'ai pu désactiver le titre

style.xml

<style name="AppDialogScreenTheme" parent="Base.Theme.MaterialComponents.Light.Dialog">
    <item name="windowActionBar">false</item>
    <item name="windowNoTitle">true</item>
</style>

AndroidManifest.xml

  <activity
        Android:name=".MyActivity"
        Android:theme="@style/AppDialogScreenTheme">

  </activity>
0
J.Sattar

Cela fonctionne pour moi, que cela aide aussi quelqu'un:

style.xml

<style name="NoTitleActivityDialog" parent="Theme.AppCompat.Light.Dialog.Alert">
    <item name="windowNoTitle">true</item>
</style>

AndroidManifest.xml

   <activity
        Android:name=".DialogActivity"
        Android:theme="@style/NoTitleActivityDialog"/>
0
Kapil Rajput