web-dev-qa-db-de.com

Android Aktivität als Dialog, aber ohne Titelleiste

Ich habe eine Aktivität, für die Folgendes als Thema festgelegt wurde:

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

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

68
Shade

Versuchen Sie es mit requestWindowFeature(Window.FEATURE_NO_TITLE); in onCreate. Dies muss sofort nach dem Aufruf von super.onCreate Und kurz vor setContentView erfolgen.

143
Femi

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

Versuchen Sie dies

supportRequestWindowFeature(Window.FEATURE_NO_TITLE);

unmittelbar vor setContentView(R.layout.MyDialogActivity);

109
zackygaurav

Sie können Ihr eigenes Thema definieren:

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

(Tipp von @Rehan) Wenn Sie die Kompatibilitätsbibliothek verwenden, sollten Sie ein AppCompat übergeordnetes Thema auswählen und das Präfix Android: Weglassen. Beispielsweise:

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

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

<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" Anstelle von name="Android:windowActionBar".

29
Neoh

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

hierfür können Sie ein benutzerdefiniertes Design in der Datei values ​​/ style.xml wie folgt 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 in menifest.xml dieses benutzerdefinierte Design als an

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

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

7

Dieser hat bei mir für appcompat gearbeitet.

<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

für Dialoge können Sie Folgendes tun:

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

Dieser hat für mich gearbeitet.

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>
0
J.Sattar

Das funktioniert bei mir, kann es auch jemandem helfen:

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