Android активность в виде диалога, но без строки заголовка


У меня есть деятельность, которая имеет следующий набор в тему:

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

однако в диалоговом окне activity-появляется строка заголовка, которая использует небольшое доступное пространство, которое у меня есть. Как я могу его удалить?

8 62

8 ответов:

попробуйте requestWindowFeature(Window.FEATURE_NO_TITLE); на onCreate. Это нужно будет сделать сразу после вызова super.onCreate и перед setContentView.

вы можете определить свою собственную тему:

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

(Tip of the hat to @Rehan) если вы используете библиотеку совместимости, вы должны выбрать AppCompat родительская тема и оставить android: префикс. Например:

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

для тех, кто использует AppCompatActivity, выше ответы могут не работать.

попробуй такое

supportRequestWindowFeature(Window.FEATURE_NO_TITLE);

перед setContentView(R.layout.MyDialogActivity);

если вы используете AppCompatActivity в котором вы вынуждены использовать Theme.AppCompat.xxx для всего, вы можете удалить заголовок диалога или actionbar в styles.xml С помощью этого:

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

обратите внимание на использование name="windowActionBar", вместо name="android:windowActionBar".

Если вы используете AppCompatActivity requestWindowFeature (окно.FEATURE_NO_TITLE) не работает.

для этого вы можете создать собственную тему в значениях/стиль.xml как показано ниже:

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

обратите внимание, что имя элемента: "windowNoTitle" нет имя элемента: "android: windowNoTitle"

в menifest.xml применить эту пользовательскую тему как

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

или вы можете использовать getSupportActionBar ().скрыть() программно скрыть действие бар.

Это один работал для меня для 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>

для диалогов, вы можете сделать это так:

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

это работает для меня, может это поможет кому-то тоже :

стиль.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"/>