13

Ich muss eine meiner Aktivitäten MyNoStatusBarActivity.java eine Vollbild-Aktivität machen.android: theme = "@ android: style/Theme.NoTitleBar.Fullscreen" funktioniert auf Anwendungsebene, aber nicht auf Aktivitätsebene. Irgendeine Ahnung?

Ich habe im Manifest hinzugefügt:

<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> 

Und im onCreate meine Tätigkeit:

@Override 
public void onCreate(Bundle savedInstanceState) { 

    super.onCreate(savedInstanceState); 

    requestWindowFeature(Window.FEATURE_NO_TITLE); 

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

alles tun verbirgt nur die Titelleiste und die Statusleiste.

Auch wenn ich das Manifest-Thema auf der Anwendungsebene statt meiner Aktivität verwende, funktioniert es aber für alle Aktivitäten meiner App, was ich nicht will. Ich möchte die keine Statusleiste nur für eine bestimmte Aktivität.

Hilfe wird sehr geschätzt. Thnx!

S.S .: Ich bin in Ordnung, ist dieses Verhalten nicht mehr in Honeycomb/ICS verfügbar. Ich brauche dies nur für 2,2 und 2,3

EDIT

alle in anderen Lösungen SO erwähnten Vorschläge versuchten aber keinen Erfolg noch. Theme funktioniert, wenn es auf Anwendungsebene, aber nicht auf Aktivitätsebene angewendet wird.

I HTC Wildfire-S verwenden, android ver 2.3.5

Antwort

6

Ich glaube, Sie nur die android:theme="@android:style/Theme.NoTitleBar.Fullscreen aus dem Mainfest nehmen müssen, mit Code-Stick nur nennen, es ist immer für mich da. Welches Testgerät verwenden Sie?

auch sicherstellen, dass diese Anrufe kommen vor Sie diese zu setContentView(R.layout.xxx) wie nennen

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

prüfen alle Ihre Code für android:theme Erklärungen, also manifestieren und individuelle Layouts XML-Dateien. Es klingt so, als würde es erklären, dass es auf App-Ebene funktioniert (da es alle nachfolgenden Deklarationen des Themas überschreibt), aber es gibt etwas, das Ihre Aktivitätslevelanforderung außer Kraft setzt.

Versuchen Sie, Ihr gesamtes Projekt für die Suche „android: Thema“ und entfernen Sie alles, was Sie nicht 100% sicher, dass Sie benötigen, testen Sie es auf diese Weise

+0

dies für Android 2.x und höher –

+0

Doesnt Arbeit arbeiten soll . Nur der Titel wird gelöscht, aber die Statusleiste bleibt erhalten. Ich benutze HTC WildFire-S, Android ver 2.3.5 –

+0

Infact es scheint, als ob der obere Teil der Aktivität unterhalb der Statusleiste geht. Die Statusleiste scheint einen hohen Z-Index zu haben und verbirgt einen Teil meiner Vollbildaktivität! –

29

In Ihrem Manifest xml, auf Anwendungsebene setzt diese:

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

und in der Aktivität, die im Vollbild möglich, dies machen möchten setzen:

<activity 

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

entfernen Sie alle setWindowsFeature oder SetFlag Methoden in onCreate.

+0

Sorry, aber funktioniert das für Android 2.3 ? – Dante

+1

Ich glaube schon. Ich habe das auf Android 2.2 getestet – Neoh

3

Ich habe dies in meiner Tätigkeit:

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

Und in meinem Manifest ich nicht ändern, dies ist mein, ohne Änderungen:

android:theme="@style/AppTheme" 

In meinem activty xml:

android:theme="@android:style/Theme.NoTitleBar.Fullscreen" 
0

Dies wird den Trick machen:

protected void onCreate(Bundle savedInstanceState) { 

    super.onCreate(savedInstanceState); 

    requestWindowFeature(Window.FEATURE_NO_TITLE); 

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

    setContentView(R.layout.activity_main); 
} 
0

Dies wird Ihr Problem

nur in Ihrem Manifest @android beheben ändern: Stil für @ style .../..

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