我最近一直在开发一个 Android 应用程序,我需要在其中为标签栏设置自定义布局和尺寸。到目前为止,我这样做的方式是使用 Jake Wharton 的 ActionBarSherlock 库来支持预HoneyComb Android 版本,并将样式应用于我编辑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 似乎通过将标签栏高度设置为“action_bar_stacked_max_height”尺寸值(在 4.1 的/values/dimen.xml
文件中为 48dp)来限制 TabBar 的高度),即使我已将操作栏高度设置为actionBarSize
.
我已经尝试通过在我自己的文件中将它设置为我自己的值来覆盖这个维度值dimen.xml
,但我没有运气。它没有用。
我的问题:
你们知道我可以覆盖“action_bar_stacked_max_height”尺寸值的方法吗?
先感谢您!