10

过去几天我一直在使用 ActionBar 和 ActionBarSherlock,在 ActionBar 中填写一些信息时遇到了一些问题。

当应用程序以竖屏模式运行时,ActionBar 看起来不错,并且可以显示所有数据,例如:

纵向模式下的 ActionBar

但是当我切换应用程序以横向显示时,一些数据被裁剪:

横向模式下的 ActionBar

您可以注意到由于 ActionBar 的新高度,状态图标和电子邮件都被裁剪了。

在这种情况下,我想为纵向和横向保持相同的大小,以便应用程序看起来不错。我无法减小操作栏标题的字体大小,因为它可能包含其他图标。

我将这些图标放在操作栏标题和副标题中的方式是使用 Html.fromHtml

有什么想法可以解决这个问题吗?我正在使用 ActionBarSherlock 库!

4

1 回答 1

23

一种可能不太漂亮的方法可能是覆盖 ActionBar in 中的默认高度值dimens.xml

例如,竖屏中的默认值为:

<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 本人的建议。

第二次编辑: 在 Jake 的回复之后,要使其在 ICS 和 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>

并在对应的activity中,设置这个新样式

android:theme="@style/Theme.Styled"

和..它的工作原理!

于 2012-06-05T01:14:42.397 回答