2012-08-08 12 views
5

Chcę, aby pasek tytułu był ukryty po przełączeniu urządzenia w krajobraz. Widziałem opcję XML, aby ukryć pasek tytułowy, a następujący przykład robi to programowo:Ukrywanie paska tytułu/paska powiadomień, gdy urządzenie jest ustawione na krajobraz

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

ale używam configChanges parametr dla orientation i screenSize, więc moja działalność nie jest ponownie, gdy ponownie utworzona orientuje się na krajobraz (robię to z jakichś powodów). Tak więc nie mogę używać powyższych metod, ponieważ te wywołania muszą być wykonane przed setContentView().

Jakieś pomysły? Dziękuję Ci.

+0

Aplikacja YouTube robi to jakoś ... i jestem pewna, że ​​nie tworzą one ponownie aktywności (spróbuj uruchomić wideo w pionie, a następnie przejdź do krajobrazu). –

+1

Nie sądzę, abyś mógł zmienić widok dekoracyjny po wywołaniu widoku ustawień. Proponuję rozpocząć widok w trybie pełnoekranowym i ustawić tytuł paska tytułu w widoku zawartości. w ten sposób po zmianie oreientacji możesz ją ukryć. – Shubhayu

+1

Przeczytaj ten artykuł na http://stackoverflow.com/questions/4853505/android-how-to-disable-feature-no-title, propozycję zdefiniować swój własny tytuł i możesz ukryć i pokazać, jak chcesz. – idiottiger

Odpowiedz

2

najpierw sprawdzić swoją orientację urządzenia za pomocą następujący kod

aktualnej konfiguracji, stosowany do określenia, które zasoby do pobrania itp, jak dostępny od obiektu konfiguracji zasobów jako:

getResources().getConfiguration().orientation 

Następnie wykonaj niezbędne kodowanie związane z ukrywaniem paska tytułu i paska powiadomień.

+3

jakie jest "niezbędne kodowanie ???" to jest właściwie moje pytanie !!!! –

6

Zakładając zdefiniowaniu configChanges dla Activity w manifeście wtedy można osiągnąć swój problem nadrzędnymi onConfigurationChanged metody:

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

Będziesz musiał użyć getSupportActionBar() zamiast getActionBar() przypadku korzystania z biblioteki wsparcia.

+0

W AppCompatActivity nie jest uruchomiony! – IgniteCoders

-1

W swojej „AndroidManifest.xml” w tagu aktywności można określić „NoTitleBar” we właściwości tematu tak, że będzie zawsze ukryć tytuł:

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

szukał odpowiedzi, skończyło się tutaj, ułóż kawałki razem i oto one:

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

Dzięki, pracuj dla mnie – Tony

+0

pracował dla mnie 2 –

Powiązane problemy