Mam dziwny problem z ustaleniem wysokości ActionBar
. Mam kilka części w mojej aplikacji, gdzie coś znajduje się tuż pod ActionBar
, a także używam biblioteki Chrisa Banesa actionbar-pulltorefresh.Problem z Androidem ActionBar wysokościowym
Będę używał przykładu z przeciągnięcia, aby odświeżyć bibliotekę. Występuje dokładnie to samo, co problem here, z tym że robię wszystko dokładnie tak, jak mówi przewodnik za pomocą Fragments
. Zasadniczo oblicza wysokość ActionBar
na około połowę tego, co powinno być. Również w innej części aplikacji pozycjonuję PopupWindow
pod ActionBar
, więc nazywam się getHeight()
i używam tej pozycji w moim oknie, mam taki sam problem jak w przypadku biblioteki odciągania do odświeżenia.
To sprawia, że myślę, że ma to coś wspólnego z mierzeniem wysokości i może to być problem ze stylem.
Ale tutaj jest, gdzie robi się interesująco. Jeśli obrócę urządzenia do trybu poziomego, obliczam wysokość w porządku i umieszczam wszystko, co powinno być od tego momentu, nawet jeśli obrócę z powrotem do portretu. to jest nagle naprawione, dopóki nie uruchomię ponownie aplikacji i nie zabiorę jej z pamięci i nie zacznę od nowa.
Czy ktoś miał coś podobnego?
UWAGA: Używam teraz biblioteki appcompat, ale używałem ActionBarSherlock wcześniej, a także podstawowego ActionBara w pewnym momencie, a wszystkie scenariusze dały taki sam wynik.
UPDATE 1: uzyskać takie same wyniki z zagadnień here, here i here. Jednak robię wszystko, co README mówi, aby to zrobić, ale jestem pewien, że ma to coś wspólnego z tym, jak moje urządzenie mierzy wysokość ActionBar
.
UPDATE 2: użyłem actionbar PullToRefresh bibliotekę w innej działalności i działa dobrze, więc to musi być coś z moim głównym Activity
.
Pytanie brzmi, gdy wywołasz metodę 'getHeight()'? Jak Pociągnij, aby odświeżyć bibliotekę, wywołuje ją w określonym czasie. tj. gdy tworzone jest 'Widok'. na bocznej notatce używasz 'widoku pager'? –
Używam 'ViewPager' w niektórych' Fragmentach', ale problem istnieje wszędzie w obrębie rodzica 'Activity'. – Wenger
Nazywam 'getHeight()' jako jedną z pierwszych rzeczy w moim 'Activity'' onCreate() '. – Wenger