Ok, przeglądałem go i kilka razy trafiałem do tego postu, więc myślę, że dobrze byłoby opisać nie tylko Sherlocka, ale także appcompata:
Wysokość paska akcji za pomocą appCompat
Całkiem podobny do opisu @Anthony można go znaleźć za pomocą następującego kodu (właśnie zmieniłem identyfikator zasobu):
TypedValue tv = new TypedValue();
if (getActivity().getTheme().resolveAttribute(R.attr.actionBarSize, tv, true))
{
int actionBarHeight = TypedValue.complexToDimensionPixelSize(tv.data,getResources().getDisplayMetrics());
}
Problem z przed kanapką
Potrzebowałem wysokości paska akcji, ponieważ na urządzeniach z ICE_CREAM_SANDWITCH mój widok nakładał się na pasek akcji. Próbowałem ustawić android: layout_marginTop = "? Android: attr / actionBarSize", android: layout_marginTop = "? Attr / actionBarSize", ustawienie nakładania się na view / actionbar, a nawet stałą wysokość paska akcji z niestandardowym motywem, ale nic nie działało. Tak to wyglądało:
Niestety dowiedziałem się, że dzięki metodzie opisanej powyżej otrzymuję tylko połowę wysokości (zakładam, że pasek opcji nie jest zajęty), więc aby całkowicie naprawić problem, muszę podwoić wysokość paska akcji i wszystko wydaje się w porządku:
Jeśli ktoś zna lepsze rozwiązanie (niż podwojenie actionBarHeight), z przyjemnością dam mi znać, ponieważ pochodzę z rozwoju iOS i większość rzeczy związanych z widokiem na Androida jest dość myląca :)
Pozdrowienia,
hris.to