Ответ 1
Попробуйте выполнить requestWindowFeature(Window.FEATURE_NO_TITLE);
в onCreate
. Это нужно сделать сразу после вызова super.onCreate
и непосредственно перед setContentView
.
У меня есть действие, которое имеет следующий набор как тему:
android:theme="@android:style/Theme.Dialog"
Однако в появившемся диалоге действий есть строка заголовка, которая использует небольшое доступное пространство, которое у меня есть. Как его удалить?
Попробуйте выполнить requestWindowFeature(Window.FEATURE_NO_TITLE);
в onCreate
. Это нужно сделать сразу после вызова super.onCreate
и непосредственно перед setContentView
.
Для тех, кто использует AppCompatActivity
, ответы выше могут не работать.
Попробуйте
supportRequestWindowFeature(Window.FEATURE_NO_TITLE);
непосредственно перед setContentView(R.layout.MyDialogActivity);
Вы можете определить свою собственную тему:
<style name="NoTitleDialog" parent="@android:style/Theme.Dialog">
<item name="android:windowNoTitle">true</item>
</style>
(Подсказка к @Rehan). Если вы используете библиотеку совместимости, вы должны выбрать родительскую тему AppCompat
и не android:
префикс android:
. Например:
<style name="NoTitleDialog" parent="@style/Theme.AppCompat.Dialog">
<item name="windowNoTitle">true</item>
</style>
Если вы используете 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"
.
Если вы используете AppCompatActivity requestWindowFeature (Window.FEATURE_NO_TITLE) не работает.
для этого вы можете создать пользовательскую тему в значениях /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(), чтобы программно скрыть панель действий.
Это работало для меня для 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);
Это работает для меня, может ли это кому-то помочь:
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"/>
Этот работал для меня.
Я смог отключить заголовок
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>