2012-08-08 5 views
5

Ich möchte, dass meine Titelleiste ausgeblendet wird, wenn ich mein Gerät in Querformat umstelle. Ich habe die XML-Option gesehen auf die Titelleiste, und das folgende Beispiel es programmatisch tun zu verstecken:Titelleiste/Benachrichtigungsleiste ausblenden, wenn das Gerät auf Querformat ausgerichtet ist

//Remove title bar 
this.requestWindowFeature(Window.FEATURE_NO_TITLE); 
//Remove notification bar 
this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN); 

ABER, ich configChanges Parameter für orientation und screenSize, so meine Aktivität bin nicht wieder neu erstellt, wenn es orientiert sich an Landschaft (ich mache das aus einigen Gründen). Daher kann ich die obigen Methoden nicht verwenden, da diese Aufrufe vor setContentView() getätigt werden müssen.

Also irgendwelche Ideen? Vielen Dank.

+0

Youtube Anwendung es irgendwie tut ... und ich bin sicher, dass sie nicht wieder die Aktivität erstellen (versuchen sie das Video im Portrait laufen und biegen dann auf Landschaft.). –

+1

Ich glaube nicht, dass Sie die Dekoransicht ändern können, nachdem Sie die setcontentview aufgerufen haben. Ich würde vorschlagen, dass Sie die Ansicht im Vollbildmodus starten und Ihre Titelleiste in Ihre Inhaltsansicht einfügen. Auf diese Weise können Sie die Änderung ändern. – Shubhayu

+1

lesen Sie diesen Beitrag http://stackoverflow.com/questions/4853505/android-how-to-disable-feature-no-title, Vorschlag definieren Sie Ihren eigenen Titel, und Sie können ausblenden und zeigen, wie Sie möchten. – idiottiger

Antwort

2

zunächst unter Verwendung folgenden Code Ihrer Geräteausrichtung überprüfen

Die aktuelle Konfiguration, wie verwendet, welche Ressourcen zu bestimmen usw. abrufen, wie er von der Configuration-Objekt Ressourcen wie:

getResources().getConfiguration().orientation 

Führen Sie dann die erforderliche Codierung aus, um die Titelleiste und die Benachrichtigungsleiste zu verbergen.

+3

Was ist die "notwendige Codierung ???" das ist eigentlich meine Frage !!!! –

6

Sie haben Unter der Annahme definiert configChanges für die Activity im Manifest, dann können Sie Ihr Problem zwingende onConfigurationChanged Methode erreichen:

@Override 
public void onConfigurationChanged(Configuration newConfig) { 
    super.onConfigurationChanged(newConfig); 
    if(newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE) { 
      getActionBar().hide(); 
    } else { 
      getActionBar().show(); 
    } 
} 

Sie getSupportActionBar() statt getActionBar() zu verwenden, wenn die Support-Bibliothek verwenden.

+0

In AppCompatActivity ist es nicht gefeuert! – IgniteCoders

-1

In Ihrem „AndroidManifest.xml“, in dem Aktivitäts-Tag-Sie „NoTitleBar“ im Thema Eigenschaft angeben können, so dass es immer den Titel verbergen:

<activity 
    android:name="com.my_package.MyActivity" 
    android:theme="@android:style/Theme.NoTitleBar.Fullscreen" 
    android:configChanges="navigation|orientation|screenLayout|layoutDirection"> 
12

wurde Suche nach einer Antwort, endete hier setzen die Teile zusammen und hier sind sie:

if (getResources().getConfiguration().orientation == Configuration.ORIENTATION_LANDSCAPE) { 
    getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN); 
} 
else { 
    getWindow().clearFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN); 
} 
+0

Danke, arbeite für mich – Tony

+0

arbeitete für mich 2 –