【发布时间】:2013-02-12 10:34:18
【问题描述】:
我最近一直在开发一个 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 限制了 TabBar 的高度,当应用程序处于纵向模式时,通过将标签栏高度设置为“action_bar_stacked_max_height”尺寸值(在 4.1 中为 48dp的/values/dimen.xml 文件),即使我在actionBarSize 中设置了操作栏高度。
我尝试通过在我自己的dimen.xml 文件中将其设置为我自己的值来覆盖这个维度值,但我没有运气。没用。
我的问题:
你们知道我可以覆盖“action_bar_stacked_max_height”维度值的方法吗?
提前谢谢你!
【问题讨论】:
-
我也有同样的问题。您对此有什么解决方案吗?
标签: android tabs android-actionbar actionbarsherlock android-4.2-jelly-bean