2012-10-30 8 views
13

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

+0

Cześć Sowrabh, znalazłeś jakieś rozwiązanie? – Wayne

+1

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. –

+1

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

Odpowiedz

5

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.

+0

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

+0

Dzięki, pracowałem w moim przypadku – user3819810