过去几天我一直在使用ActionBar和ActionBarSherlock,在ActionBar中填写一些信息时遇到了一些问题。
当应用程序以纵向模式运行时,ActionBar看起来很好,并且可以显示所有数据,例如:
但是,当我将应用程序切换为横向显示时,会裁剪一些数据:
您可以注意到由于ActionBar的新高度,状态图标和电子邮件的裁剪方式。
在这种情况下,我想为肖像和风景保持相同的大小,以便应用程序看起来很好。我无法减小操作栏标题的字体大小,因为它可能包含其他图标。
我将这些图标放在操作栏标题和副标题中的方式是使用Html.fromHtml
有什么想法可以解决这个问题吗?我正在使用ActionBarSherlock库!
答案 0 :(得分:23)
一种,可能不是太漂亮的方法,可以覆盖 dimens.xml
中ActionBar的默认高度值。
E.g。纵向中的默认值为:
<dimen name="abs__action_bar_default_height">48dip</dimen>
在景观中:
<dimen name="abs__action_bar_default_height">40dip</dimen>
可能有更简洁的方法,但我不得不承认我对ActionBarSherlock的内部知之甚少。
编辑:想想看,当在ICS上使用本机ActionBar时,这可能不起作用,因为高度将解析为?android:attr/actionBarSize
中的平台值。我建议你等一个更好的建议,例如来自杰克本人。
第二次修改 在Jake的回复之后,似乎只需要在ICS和pre-ICS设备上使用ActionBarSherlock就可以将以下内容添加到应用程序的主题中:
<item name="actionBarSize">@dimen/some_value</item>
<item name="android:actionBarSize">@dimen/some_value</item>
然后,您可以在相关的肖像/土地资源桶中添加实际值。
第三次修改 [感谢 alvarolb ]:样式的XML示例:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="Theme.Styled" parent="Theme.Sherlock.Light.DarkActionBar">
<item name="actionBarSize">48dip</item>
<item name="android:actionBarSize">48dip</item>
</style>
</resources>
在相应的活动中,设置此新样式
android:theme="@style/Theme.Styled"
和..它有效!