Android-активность как диалог, но без заголовка - PullRequest
68 голосов
/ 13 июня 2011

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

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

Однако в диалоговом окне действия отображается строка заголовка, которая занимает мало доступного места, которое у меня есть.Как я могу удалить это?

Ответы [ 9 ]

143 голосов
/ 13 июня 2011

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

109 голосов
/ 29 октября 2015

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

Попробуйте это

supportRequestWindowFeature(Window.FEATURE_NO_TITLE);

непосредственно перед setContentView(R.layout.MyDialogActivity);

107 голосов
/ 13 июня 2011

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

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

(Подсказка к @Rehan). Если вы используете библиотеку совместимости, вы должны выбрать родительскую тему AppCompat и оставить префикс android:. Например:

<style name="NoTitleDialog" parent="@style/Theme.AppCompat.Dialog">
    <item name="windowNoTitle">true</item>
</style>
29 голосов
/ 28 августа 2015

Если вы используете AppCompatActivity, в котором вы вынуждены использовать Theme.AppCompat.xxx для всего, вы можете удалить заголовок диалога или панель действий в 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".

7 голосов
/ 02 августа 2016

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

для этого вы можете создать собственную тему в values ​​/ style.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 (). Hide () , чтобы программно скрыть панель действий.

5 голосов
/ 29 мая 2016

Этот работал для меня в 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>
1 голос
/ 17 октября 2012

для диалогов, вы можете сделать это следующим образом:

Dialog dialog = new Dialog(context);
dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
0 голосов
/ 06 июля 2019

Этот работал для меня.

Мне удалось отключить заголовок

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 голосов
/ 06 января 2017

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

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"/>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...