74 votes

Activité Android en tant que dialogue, mais sans barre de titre

J'ai une activité dont le thème est le suivant :

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

Cependant, la barre de titre qui apparaît dans la boîte de dialogue des activités occupe le peu d'espace disponible dont je dispose. Comment puis-je la supprimer ?

1 votes

Je ne suis pas sûr de ce que vous voulez dire. Pouvez-vous en faire une capture d'écran ?

146voto

Femi Points 42054

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

1 votes

Avez-vous essayé avec la version 2.2 ? J'obtiens un Caused by: android.util.AndroidRuntimeException: You cannot combine custom titles with other title features Exception, mais peut-être que je fais quelque chose de mal.

0 votes

Vous utilisez probablement une autre fonction de titre de fenêtre dans le code, ou un thème qui fait d'autres choses au titre.

15 votes

Cela ne fonctionnera pas dans AppCompactActivity . Vous devez ajouter la réponse de @zackygaurav pour que l'utilisateur qui utilise l'outil de gestion de l'information de l'entreprise soit en mesure d'y accéder. AppCompatActivity obtiendra les informations appropriées.

140voto

zackygaurav Points 2581

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

112voto

Ted Hopp Points 122617

Vous pouvez définir votre propre thème :

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

(Coup de chapeau à @Rehan) Si vous utilisez la bibliothèque de compatibilité, vous devez choisir un fichier AppCompat le thème parent et laisser de côté le android: préfixe. Par exemple :

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

4 votes

Merci pour cela. C'est probablement une meilleure approche, mais j'ai fini par utiliser requestWindowFeature. Merci quand même :)

7 votes

J'ajoute juste : Utilisez-le sans Android préfixe pour AppCompatActivity c'est-à-dire ajouter <item name="windowNoTitle">true</item> à votre style.

0 votes

J'ai trouvé un bon concept sur de nombreuses sources mais aucune d'entre elles ne parle d'AppCompat et de none-Appcompat, merci.

30voto

Neoh Points 4186

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'action en 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" .

7voto

Sangram Haladkar Points 576

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" n'est pas le nom de l'élément : "Android:windowNoTitle".

Dans menifest.xml, appliquez ce thème personnalisé en tant que

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

ou vous pouvez utiliser getSupportActionBar().hide() pour masquer de manière programmatique la barre d'action.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X