Android activity as dialog, but without a title bar
Asked Answered
R

9

77

I have an activity that has the following set as theme:

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

However, there is a title bar in the activity-dialog that appears, that uses up the little available space that I have. How can I remove it?

Raeleneraf answered 12/6, 2011 at 22:8 Comment(1)
I'm not sure what you mean. Can you post a Screenshot of it?Handbreadth
G
146

Try doing requestWindowFeature(Window.FEATURE_NO_TITLE); in onCreate. It'll need to be done immediately after calling super.onCreate and just before setContentView.

Gem answered 12/6, 2011 at 22:13 Comment(4)
Have you tried this with 2.2? I am getting a Caused by: android.util.AndroidRuntimeException: You cannot combine custom titles with other title features Exception, but maybe I am doing something else wrong.Encaenia
You're probably using another window title feature in code, or using a theme that does other things to the title.Gem
this wll not work in AppCompactActivity. You sholud add the @Broadwater answer so that the user who are using the AppCompatActivity will get the proper information.Convolve
@Convolve so how would it work for 'AppCompactActivity'?Mandle
B
145

For those who are using AppCompatActivity, above answers may not work.

Try this

supportRequestWindowFeature(Window.FEATURE_NO_TITLE);

immediately before setContentView(R.layout.MyDialogActivity);

Broadwater answered 29/10, 2015 at 14:48 Comment(2)
Or add <item name="windowNoTitle">true</item> to your style i.e. without the android prefixAr
Just one more thing: Do not use ConstraintLayout at the root of your layout or your activity will not appear on screen.Sidonnie
T
114

You can define your own theme:

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

(Tip of the hat to @Rehan) If you're using the compatibility library, you should pick an AppCompat parent theme and leave off the android: prefix. For example:

<style name="NoTitleDialog" parent="@style/Theme.AppCompat.Dialog">
    <item name="windowNoTitle">true</item>
</style>
Tinworks answered 12/6, 2011 at 22:14 Comment(3)
Thanks for this. It's probably a better approach, but I ended up using requestWindowFeature. Thanks anyway :)Raeleneraf
Just adding: Use it without android prefix for AppCompatActivity i.e. add <item name="windowNoTitle">true</item> to your style.Ar
I've found good concept on many sources but none of them talking about AppCompat and none-Appcompat, thanksCommissary
F
30

If you are using AppCompatActivity in which you are forced to use Theme.AppCompat.xxx for everything, you can remove the dialog title or actionbar in styles.xml using this:

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

Notice the use of name="windowActionBar", instead of name="android:windowActionBar".

Franko answered 28/8, 2015 at 6:37 Comment(1)
I was trying helplessly using AppCompat AND using android namespace in the windowNoTitle declaration. THANKS!Albaugh
U
7

This one worked for me.

I was able to disable the title

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>
Urano answered 6/7, 2019 at 5:43 Comment(0)
H
5

This one worked for me for 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>
Habitual answered 29/5, 2016 at 14:13 Comment(0)
E
5

If you are using AppCompatActivity requestWindowFeature(Window.FEATURE_NO_TITLE) is not working.

for this you can create custom theme in values/style.xml as below:

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

please note that item name:"windowNoTitle" not item name:"android:windowNoTitle"

In menifest.xml apply this custom theme as

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

or you can use getSupportActionBar().hide() to programmatically hide action bar.

Ellen answered 2/8, 2016 at 12:8 Comment(0)
L
0

This works for me, may it helps someone too :

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"/>
Lawson answered 6/1, 2017 at 12:43 Comment(0)
K
0

I try requestWindowFeature(Window.FEATURE_NO_TITLE); but not working for me, if you are like me so do this : first Add the following code in your res/values/styles.xml:

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

Pass the theme to your dialog:

Dialog dialog = new Dialog(this, R.style.NoTitleDialog);

that's it very simple

Kazmirci answered 31/1, 2022 at 15:37 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.