Android-Aktivität als Dialog, aber ohne Titelleiste

Lesezeit: 4 Minuten

Ich habe eine Aktivität mit folgendem Thema:

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

Es gibt jedoch eine Titelleiste im angezeigten Aktivitätsdialog, die den wenigen verfügbaren Platz verbraucht, den ich habe. Wie kann ich es entfernen?

  • Ich bin mir nicht sicher was du meinst. Kannst du davon einen Screenshot posten?

    – Lukas Knuth

    12. Juni 2011 um 22:09 Uhr

Benutzer-Avatar
Femi

Versuchen Sie es zu tun requestWindowFeature(Window.FEATURE_NO_TITLE); in onCreate. Dies muss sofort nach dem Anruf erfolgen super.onCreate und kurz davor setContentView.

  • Hast du das mal mit 2.2 probiert? Ich bekomme ein Caused by: android.util.AndroidRuntimeException: You cannot combine custom titles with other title features Ausnahme, aber vielleicht mache ich etwas anderes falsch.

    – Eleni

    3. Juni 2012 um 10:55 Uhr

  • Sie verwenden wahrscheinlich eine andere Fenstertitelfunktion im Code oder verwenden ein Design, das andere Dinge mit dem Titel macht.

    – Femi

    7. Juni 2012 um 1:52 Uhr

  • das wird nicht funktionieren AppCompactActivity. Sie sollten die Antwort @zackygaurav hinzufügen, damit der Benutzer, der die AppCompatActivity bekommt die richtigen Informationen.

    – Moinkhan

    16. Juli 2016 um 11:42 Uhr

  • @Moinkhan, also wie würde es für ‘AppCompactActivity’ funktionieren?

    – Yousuf Sohail

    4. Februar 2019 um 10:00 Uhr

Für diejenigen, die verwenden AppCompatActivitydie obigen Antworten funktionieren möglicherweise nicht.

Versuche dies

supportRequestWindowFeature(Window.FEATURE_NO_TITLE);

unmittelbar bevor setContentView(R.layout.MyDialogActivity);

  • Genius! Vielen Dank!

    – Murphybro2

    12. Januar 2016 um 13:34 Uhr

  • Oder hinzufügen <item name="windowNoTitle">true</item> zu Ihrem Stil dh ohne die Android Präfix

    – Reha

    29. September 2016 um 12:12 Uhr

  • Nur noch eins: Nicht verwenden ConstraintLayout an der Wurzel Ihres Layouts oder Ihre Aktivität wird nicht auf dem Bildschirm angezeigt.

    – Lieferwagen

    7. August 2018 um 17:53 Uhr

Benutzer-Avatar
Ted Hopp

Sie können Ihr eigenes Thema definieren:

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

(Spitze des Hutes an @Rehan) Wenn Sie die Kompatibilitätsbibliothek verwenden, sollten Sie eine auswählen AppCompat übergeordnetes Thema und lassen Sie das weg android: Präfix. Zum Beispiel:

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

  • Danke dafür. Es ist wahrscheinlich ein besserer Ansatz, aber am Ende habe ich requestWindowFeature verwendet. Danke trotzdem 🙂

    – Schatten

    12. Juni 2011 um 22:22 Uhr

  • Nur hinzufügen: Verwenden Sie es ohne Android Präfix für AppCompatActivity dh hinzufügen <item name="windowNoTitle">true</item> zu deinem Stil.

    – Reha

    29. September 2016 um 12:10 Uhr


  • Ich habe in vielen Quellen ein gutes Konzept gefunden, aber keiner von ihnen spricht über AppCompat und Nicht-Appcompat, danke

    – Somwang Souksavatd

    18. März 2019 um 5:36 Uhr


Wenn Sie verwenden AppCompatActivity in denen Sie gezwungen sind, zu verwenden Theme.AppCompat.xxx Für alles können Sie den Dialogtitel oder die Aktionsleiste entfernen styles.xml mit diesem:

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

Beachten Sie die Verwendung von name="windowActionBar"Anstatt von name="android:windowActionBar".

Wenn Sie AppCompatActivity verwenden, funktioniert requestWindowFeature(Window.FEATURE_NO_TITLE) nicht.

Dazu können Sie wie folgt ein benutzerdefiniertes Design in values/style.xml erstellen:

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

Bitte beachten Sie, dass der Artikelname: “windowNoTitle” nicht der Artikelname: “android:windowNoTitle” ist.

Wenden Sie dieses benutzerdefinierte Design in menifest.xml als an

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

oder Sie können verwenden getSupportActionBar().hide() um die Aktionsleiste programmgesteuert auszublenden.

Benutzer-Avatar
Ajji

Dieser hat bei mir für appcompat funktioniert.

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

Benutzer-Avatar
Javid Sattar

Dieser hat bei mir funktioniert.

Ich konnte den Titel deaktivieren

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>

1266940cookie-checkAndroid-Aktivität als Dialog, aber ohne Titelleiste

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy