Niedawno opracowałem aplikację na Androida, w której muszę mieć niestandardowy układ i wymiar paska zakładek. Sposób, w jaki robiłem to do tej pory, to wykorzystanie biblioteki ActionBarSherlock autorstwa Jake'a Whartona do obsługi wersji wcześniejszych HoneyComb dla Androida oraz zastosowanie stylu do aplikacji, w której edytuję element stylu actionBarSize.Zmiana wysokości paska czynności na Androidzie JellyBean
Teraz testowałem aplikację na Galaxy S3 (z Jellybean na niej), a wysokość paska kart nie zmienia się już zgodnie z wartością actionBarSize
.
Więc zacząłem pominie kodu Jellybean, a znalazłem tę metodę w klasie ActionBarPolicy
:
public int getTabContainerHeight() {
TypedArray a = mContext.obtainStyledAttributes(null, R.styleable.ActionBar,
com.android.internal.R.attr.actionBarStyle, 0);
int height = a.getLayoutDimension(R.styleable.ActionBar_height, 0);
Resources r = mContext.getResources();
if (!hasEmbeddedTabs()) {
// Stacked tabs; limit the height
height = Math.min(height,
r.getDimensionPixelSize(R.dimen.action_bar_stacked_max_height));
}
a.recycle();
return height;
}
Z czego wnoszę w tej metodzie, wydaje się, że Jellybean ogranicza wysokość umieszczenie zakładek, gdy aplikacja działa w trybie portretu, ustawiając wysokość paska kart na wartość wymiaru "action_bar_stacked_max_height" (czyli 48 pz, w pliku 4.4.1), mimo że ustawiłem wysokość paska akcji w actionBarSize
.
Próbowałem przesłonić tę wartość wymiaru, ustawiając ją na moją własną wartość w moim własnym pliku dimen.xml
, ale nie miałem szczęścia. To nie zadziałało.
Moje pytanie:
Czy znacie jakiś sposób, w który mogę nadpisania „action_bar_stacked_max_height” wartość DIMEN?
Z góry dziękuję!
Mam również ten sam problem. Czy znalazłeś jakieś rozwiązanie? – user936414