Недавно я разработал приложение для Android, в котором мне нужно иметь собственный макет и размер для панели вкладок. Способ, которым я это делал до сих пор, заключается в использовании библиотеки Jake Wharton ActionBarSherlock для поддержки версий Android до HoneyComb и применения стиля к приложению, в котором я редактирую элемент стиля actionBarSize.
Теперь я тестировал приложение на Galaxy S3 (с Jellybean на нем), а высота панели вкладок больше не изменяется в соответствии со значением actionBarSize
.
Итак, я начал просматривать код JellyBean, и нашел этот метод в классе 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;
}
Из того, что я собираю в этом методе, кажется, что JellyBean ограничивает высоту TabBar, когда приложение находится в портретном режиме, установив высоту панели вкладок в значение измерения action_bar_stacked_max_height (которое равно 48dp, в 4.1 /values/dimen.xml
), хотя я установил высоту панели действий в actionBarSize
.
Я попытался переопределить это значение измерения, установив его в свое собственное значение в моем собственном файле dimen.xml
, но мне не повезло. Это не сработало.
Мой вопрос:
Вы знаете, как я могу переопределить значение размера action_bar_stacked_max_height?
Заранее благодарю вас!