Jak ustawić tryb actionbar
w środowisku wykonawczym, aby nie nakładał się lub nakładał na zawartość w środowisku wykonawczym? Próbowałem używać getWindow().requestFeature(Window.FEATURE_ACTIONBAR_OVERLAY)
, ale nie pozwala ustawić trybu po wywołaniu setContentView()
. Można to zrobić, jak już widziałem, w aplikacji Youtube.Ustawianie trybu nakładki paska czynności w środowisku wykonawczym w systemie Android
Odpowiedz
Chociaż niekoniecznie jest to dokładnie to, czego szukasz, dobrym rozwiązaniem byłoby utworzenie widoku spacji na górze zawartości, która ma taką samą wysokość jak ActionBar (android: layout_height = "? Android: actionBarSize"). Jeśli chcesz włączyć tryb nakładki, ustaw widoczność elementu dystansowego na View.GONE, jeśli chcesz ją wyłączyć, ustaw wartość View.VISIBLE.
Jest to zdecydowanie poprawne podejście do pracy. Nakładka ActionBara jest stylem i należy je ustawić przed wyświetleniem i nie zmieniać w czasie wykonywania, więc konieczne jest obejście. Problem z tą pracą polega na tym, że uzyskanie wysokości paska akcji nie jest tak proste, jak podano w odpowiedzi, musisz 'getActionBar(). GetHeight()' po tym, jak jest widoczny, ponieważ "skumulowany" pasek akcji (myślę, że pasek zakładek na telefonie w pionie) nie jest uwzględniony w Androidzie: actionBarSize i ponieważ nie wiemy, wszystkie zmienne, których używa Android do decydowania, czy ułożone są pokazane: ( – xbakesx
Dzięki, pracowałem w moim przypadku – user3819810
Cześć Sowrabh, znalazłeś jakieś rozwiązanie? – Wayne
Bez powodzenia @Wayne. Najlepsze, co mogę zrobić, to ustawić zawsze tryb nakładki akcji na "Window.FEATURE_ACTIONBAR_OVERLAY", a następnie w razie potrzeby ustawić współrzędną Y całego widoku na dole paska akcji. To niezbyt czyste rozwiązanie. –
Och, dziękuję, może to być obejście problemu: D. Ale byłoby miło, gdybyśmy wiedzieli, jak to zrobił Youtube: D – Wayne