2012-08-31 18 views
5

Zauważam pasek akcji (Theme.Holo) wygląda fajnie tylko w Android 3.0 lub heigher, ale nie podoba mi się na przykład na Android 2.3 .Jak ukryć pasek akcji (Theme.Holo), czy wersja Androida poniżej 3.0

jest tam, aby wyświetlić pasek akcji (Theme.Holo) na podstawie wersji Androida?

+1

Nie możesz użyć dwóch układów i ustawić jednego dla Pre 3.0 i jednego dla Post 3.0? – AxGryndr

+0

Wolę, jeśli robię to programowo, na przykład sprawdzam wersję Android, jeśli poniżej 3.0, usuń pasek. – user836026

+1

W Androidzie 2.3 nie ma paska akcji, chyba że podejmiesz konkretne kroki w celu dodania kodu innej firmy, który je implementuje (np. ActionBarSherlock). – CommonsWare

Odpowiedz

4

to dlatego, że nie został dodany ActionBar aż Android 3.0 (poziom API 11) więc każda wersja Android niższy będzie miał pasek tytułu, a nie pasek akcji.

ActionBar nie jest jeszcze częścią oficjalnej biblioteki kompatybilności, więc w międzyczasie biblioteka ActionBarSherlock pozwoli ci mieć pasek akcji, który wygląda tak samo we wszystkich wersjach API.

Jeśli chcesz całkowicie ukryć ActionBar, dodaj tylko android: style/Theme.Holo.NoActionBar do działań w manifeście.

+0

Dzięki ... jak by dodać android: style/Theme. Holo.NoActionBar prognostycznie w zależności od wersji Androida. – user836026

+0

Nie sądzę, że możesz dodać ten atrybut programowo, ale ActionBarSherlock poradziłby sobie z różnymi wersjami Androida, dając Twojej aplikacji ten sam ładny ActionBar we wszystkich wersjach API Po prostu starasz się całkowicie ukryć ActionBar coś niższego niż Android 3.0? i pokazać to na Androida 3.0+? – starkej2

+0

Tak, ale dokładniej, chciałabym ukryć "pasek tytułu" na Androidzie niższym niż 3.0 i zachować "Pasek akcji" na 3+ – user836026

5

Pasek działań wymaga minimum API 11. Jeśli chcesz go usunąć programowo, możesz użyć funkcji hide() w kodzie dla tej czynności.

ActionBar actionBar = getActionBar(); 
actionBar.hide(); 

Nie jestem pewien, co by to pokazało dla czegokolwiek poniżej 3.0, ale wydaje się najlepszym miejscem do rozpoczęcia.

Edit:

Można sprawdzić wersję SDK w czasie wykonywania z budowy stałych

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) { //checks if its lower than Honeycomb 
    ActionBar actionBar = getActionBar(); 
    actionBar.hide(); 
} 
+0

Dzięki ... ale jak sprawdzić wersję na Androida? – user836026

+1

Edytowano odpowiedź. – Tonithy

+4

Przypuszczam, że musi być większy lub równy ("> =") zamiast mniej niż (<) symbol .. i dzięki temu pomógł mi :) – Zombie

Powiązane problemy