Chcę ukryć pasek tytułowy niektórych moich działań. Problem polega na tym, że zastosowałem styl do wszystkich moich działań, dlatego nie mogę po prostu ustawić motywu @android:style/Theme.NoTitleBar
.
Użycie motywu NoTitleBar jako elementu nadrzędnego dla mojego stylu spowoduje usunięcie paska tytułu ze wszystkich moich działań.
Czy mogę gdzieś ustawić element bez tytułu?
android
android-layout
titlebar
Janusz
źródło
źródło
Możesz zmodyfikować
AndroidManifest.xml
:lub użyj,
android:theme="@android:style/Theme.Black.NoTitleBar"
jeśli nie potrzebujesz aktywności na pełnym ekranie.Uwaga: Jeśli wcześniej używałeś „domyślnego” widoku, prawdopodobnie powinieneś również zmienić klasę nadrzędną z
AppCompatActivity
naActivity
.źródło
android:theme="@android:style/Theme.Black.NoTitleBar"
jest prawdopodobnie bardziej przydatny, chyba że tworzysz gręZrobiłem teraz następujące.
Zadeklarowałem styl dziedziczący wszystko po moim ogólnym stylu, a następnie wyłączając pasek tytułu.
Teraz mogę ustawić ten styl dla każdego działania, w którym chcę ukryć pasek tytułu, zastępując styl aplikacji i dziedzicząc wszystkie inne informacje o stylu, dlatego nie ma powielania w kodzie stylu.
Aby zastosować styl do określonego działania, otwórz
AndroidManifest.xml
i dodaj następujący atrybut doactivity
znacznika;źródło
Nie podoba mi się,
this.requestWindowFeature(Window.FEATURE_NO_TITLE);
ponieważ pasek tytułu pojawia się na krótko, a następnie znika.Nie podoba mi się również,
android:theme="@android:style/Theme.NoTitleBar"
ponieważ straciłem wszystkie zmiany Holo 3.0+, do których przyzwyczaili się użytkownicy nowych urządzeń. Natknąłem się na to rozwiązanie.W folderze res / values utwórz plik o nazwie styles.xml (jeśli jeszcze nie istnieje). W tym pliku umieść następujący kod:
Następnie utwórz plik res / wartości-v11 z innym plikiem styles.xml (ponownie może to już istnieć). W tym pliku umieść następujący kod:
A jeśli celujesz w wersję 4.0+, utwórz folder res / wartości-v14 z jeszcze innym plikiem styles.xml (Tak, może już tam być). W tym pliku umieść następujący kod:
Na koniec, po utworzeniu wszystkich tych plików, otwórz plik AndroidManifiest.xml , możesz dodać kod:
do znacznika aktywności działania, dla którego nie chcesz mieć tytułu, lub znacznika aplikacji, jeśli chcesz, aby dotyczył on całej aplikacji.
Teraz użytkownicy otrzymają motywy związane z wersją urządzenia z pożądanym układem ekranu.
PS Zmiana wartości na
android:theme="@style/Theme.FullScreen"
będzie miała ten sam efekt, ale także usunie pasek powiadomień.źródło
Pasek tytułowy można usunąć na dwa sposoby, jak wspomniano na stronie programisty Androida:
W
manifest.xml
pliku:Dodaj następujące,
application
jeśli chcesz je usunąć dla wszystkich działań w aplikacji:Lub dla konkretnego działania:
źródło
poprawną odpowiedzią jest prawdopodobnie nie przedłużanie ActionbarActivity, a raczej tylko działanie
jeśli nadal używasz działania paska akcji, wydaje się, że działa:
wydaje się, że to też działa:
mógłbym zrobić tak, jak napisał Scott Biggs. tego rodzaju prace. z wyjątkiem tego, że nie ma motywu. Mam na myśli, że tło menu ustawień jest przezroczyste:
po prostu zmień
do działania lub działania fragmentu
jednak mogę sprawić, że będzie wyglądać wystarczająco dobrze, używając materiałów i nie usuwać paska akcji: https://gist.github.com/shimondoodkin/86e56b3351b704a05e53
jest to przykład stylistyki paska akcji kompatybilnego z projektowaniem materiałów.
źródło
co dla mnie działa:
1- w styles.xml:
2- w MainActivity
w manifeście odziedziczy styl:
źródło
getSupportActionBar().hide();
w ramach onCreate () {} wykona zadanieJeśli użyjesz,
this.requestWindowFeature(Window.FEATURE_NO_TITLE)
użytkownik nadal będzie mógł zobaczyć pasek tytułu tylko przez chwilę podczas animacji uruchamiania, gdy aktywność się rozpocznieonCreate
. Jeśli używasz,@android:style/Theme.Black.NoTitleBar
jak pokazano poniżej, pasek tytułowy nie będzie wyświetlany podczas animacji uruchamiania.powyższy przykład oczywiście zastąpi istniejący motyw aplikacji, jeśli masz już motyw, dodaj
<item name="android:windowNoTitle">true</item>
go.źródło
kiedy próbowałem użyć tych wszystkich wysoko ocenianych odpowiedzi, moja aplikacja zawsze ulegała awarii. (myślę, że ma to coś wspólnego z „@android: styl”?)
Najlepszym rozwiązaniem dla mnie było użycie następujących elementów:
Brak paska nagłówka / tytułu. Po prostu umieść go w
<application>...</application>
lub w<activity>...</activity>
zależności od tego, czy chcesz (nie) chcesz w całej aplikacji, czy tylko w określonej czynności.źródło
Utwórz motyw jak poniżej.
źródło
Dodaj
<item name="android:windowNoTitle">true</item>
wewnątrz AppTheme (styles.xml)
źródło
Po prostu użyj
getActionBar().hide();
w swojej głównejonCreate()
metodzie aktywności .źródło
Wystarczy zmienić
AppTheme
styl w Style.xml, jeśli zastąpisz definicjęDarkActionBar
do
NoActionBar
AppTheme zdefiniowany w AndroidManifast.xml
źródło
Dla
AppCompat
mnie zadziałało następujące rozwiązanie:Dodaj nowy styl motywu bez paska akcji w swoim
styles.xml
i ustawparent="Theme.AppCompat.NoActionBar"
.Teraz zaimplementuj ten sam styl motywu w aktywności na ekranie powitalnym
androidManifest.xml
Oto wynik:
źródło
Możesz użyć tego kodu w swoim pliku Java
dodaj tę linię przed ustawieniem lub załadowaniem widoku
źródło
W swojej
onCreate
metodzie użyj następującego fragmentu kodu:źródło
Dodaj oba te motywy, których używasz:
źródło
<item name="windowActionBar">false</item>
powoduje awarię aplikacji. może właśnie to miał na myśliDodaj ten styl do pliku style.xml
Po tym odwołaniu nazwa tego stylu do pliku androidManifest.xml w działaniach okołoporodowych, w których nie chcesz widzieć paska tytułu, jak poniżej.
źródło
android:
prefiksu przed nazwami w pierwszym bloku kodu :)Korzystam z widgetu pomocy Toolbar v7. Tak więc, aby móc usunąć lub ukryć tytuł, musimy to napisać.
źródło
Lub jeśli chcesz ukryć / pokazać pasek tytułu w dowolnym momencie:
źródło
W moim przypadku, jeśli używasz Androida studio 2.1, a twoja kompilowana wersja SDK to 6.0, to po prostu przejdź do pliku manifest.xml i zmień następujący kod:
Oto kod:
A oto krótka sesja zdjęciowa (zobacz kod zaznaczenia):
źródło
To rozwiązało mój problem
Manifestując moją aktywność:
Stylowo pod nazwą „AppTheme”:
źródło
Aby ukryć pasek tytułu i działania, zrobiłem to:
W tagu aktywności Manifest:
W Activity.java przed setContentView:
to znaczy,
// Usuń pasek tytułu
// Usuń pasek powiadomień
UWAGA : Musisz zachować te linie wcześniej
setContentView
źródło
Pierwsza odpowiedź to amfibol. oto moje wyjaśnienie: dodaj:
w metodzie oncreate ().
przed:
(nie tylko przed setContentView), jeśli tego nie zrobisz, dostaniesz forceclose. +1 tej odpowiedzi.
źródło
Znalazłem dwa powody, dla których ten błąd mógł wystąpić.
Jeden. Flagi Window są już ustawione wewnątrz,
super.onCreate(savedInstanceState);
w takim przypadku możesz użyć następującej kolejności poleceń:Dwa. W pasku tytułu masz przycisk Wstecz / W górę, co oznacza, że bieżące działanie jest hierarchicznym dzieckiem innego działania, w którym to przypadku możesz chcieć skomentować lub usunąć ten wiersz kodu z wnętrza
onCreate
metody.źródło
Tak wygląda cały kod. Zwróć uwagę na import android.view.Window.
źródło
Dodaj motyw @ style / Theme.AppCompat.Light.NoActionBar do swojej aktywności na AndroidManifest.xml w ten sposób
źródło
Jeśli robisz to, co mówią użytkownicy YaW i Doug Paul , musisz pamiętać, że funkcje okna muszą być ustawione przed wywołaniem setContentView. Jeśli nie, otrzymasz wyjątek.
źródło
dodaj najbardziej różnorodny plik,
dodaj następujący wiersz do pliku ur Java,
źródło
Używam Androida Xamarin i to działało dla mnie.
źródło