Android активность в виде диалога, но без строки заголовка
У меня есть деятельность, которая имеет следующий набор в тему:
android:theme="@android:style/Theme.Dialog"
однако в диалоговом окне activity-появляется строка заголовка, которая использует небольшое доступное пространство, которое у меня есть. Как я могу его удалить?
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"/>