Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

android:theme="@android:style/Theme.NoTitleBar.Fullscreen" works on Application level but not at the activity level. Any clue?

I need to make one of my activities called MyNoStatusBarActivity.java a full-screen activity.

I have added in the Manifest :

<activity
    android:theme="@android:style/Theme.NoTitleBar.Fullscreen"
    android:name=".MyNoStatusBarActivity"
    android:noHistory="true"
    android:label="@string/app_name"
    android:configChanges="touchscreen|keyboard|keyboardHidden|navigation|orientation">
    ...
</activity>

And in the onCreate of my activity :

@Override
public void onCreate(Bundle savedInstanceState) {

    super.onCreate(savedInstanceState);

    requestWindowFeature(Window.FEATURE_NO_TITLE);

    getWindow().setFlags(
        WindowManager.LayoutParams.FLAG_FULLSCREEN,
        WindowManager.LayoutParams.FLAG_FULLSCREEN);
}

Doing all this just hides the TITLE bar and not the STATUS bar.

Also if I use the manifest theme on the application level instead of my activity, it works but for all activities of my app which is not what I want. I want the no status bar only for one particular activity.

Help will be really appreciated. Thnx!

P.S : I am ok is this behavior is no longer available in Honeycomb/ICS. I need this just for 2.2 and 2.3

EDIT

Tried all the suggestions mentioned in other solutions in SO but no success yet. Theme works when applied to the application level but not on the activity level.

I am using HTC WildFire-S, android ver 2.3.5

like image 565
Vikas Singh Avatar asked Apr 10 '12 09:04

Vikas Singh


3 Answers

In your manifest xml, at application level put this:

<application
    ...
    android:theme="@android:style/Theme.NoTitleBar" >
</application>

and in the activity that you want to make full screen put this:

<activity

     android:theme="@android:style/Theme.NoTitleBar.Fullscreen" >
     ...
</activity>

Remove all the setWindowsFeature or setFlag methods in onCreate.

like image 173
Neoh Avatar answered Nov 07 '22 15:11

Neoh


I think you just need to take the android:theme="@android:style/Theme.NoTitleBar.Fullscreen out of the mainfest, stick with code only call, it's always worked for me. Which test device are you using?

Also make sure these calls come before you call to setContentView(R.layout.xxx) like this

    super.onCreate(savedInstanceState);
    requestWindowFeature(Window.FEATURE_NO_TITLE);
    getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN);
    setContentView(R.layout.xxx);

Check all of your code for android:theme declarations, ie manifest and individual layouts xml files. as it sounds like declaring it at app level is working (as it's overriding any subsequent theme declarations) but there is something overriding your activity level request.

Try searching your whole project for "android:theme" and remove anything that you're not 100% sure you need, test it that way

like image 6
Sam Clewlow Avatar answered Nov 07 '22 15:11

Sam Clewlow


I put this in my activity:

requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.activity_splash);

And in my manifest I don't modify, this is mine, without modifications:

android:theme="@style/AppTheme"

In my activty xml:

android:theme="@android:style/Theme.NoTitleBar.Fullscreen"
like image 3
haelsite Avatar answered Nov 07 '22 16:11

haelsite