[英]ActionBarDisappearing on Android 4.0+
我目前正在为2.3-4.2+上的设备编写应用程序,并且遇到了一些奇怪的意外问题。 在尝试为其设定主题之前,它一直运行良好,直到在所有设备上显示为止。 即使使用简单的样式简单地扩展了动作栏夏洛克主题,也似乎没有显示动作栏。
样式的设置。
<style name="FrameworkRoot.Theme" parent="Theme.Sherlock.Light.DarkActionBar">
<!-- API 11+ (compatibility) -->
<item name="buttonBarStyle">@style/Compat.ButtonBar</item>
<item name="buttonBarButtonStyle">@style/Compat.ButtonBarButton</item>
<item name="indeterminateProgressStyle">@style/Compat.IndeterminateProgress</item>
<!-- API 14+ (compatibility) -->
<item name="listPreferredItemPaddingLeft">@dimen/compat_list_preferred_item_padding_left</item>
<item name="listPreferredItemPaddingRight">@dimen/compat_list_preferred_item_padding_right</item>
<item name="listPreferredItemHeightSmall">@dimen/compat_list_preferred_item_height_small</item>
</style>
<style name="Theme.Base" parent="FrameworkRoot.Theme">
<item name="textHeaderMaxLines">@integer/text_header_max_lines</item>
<item name="trackAbstractMaxLines">@integer/track_abstract_max_lines</item>
<item name="activatableItemBackground">@drawable/activatable_item_background</item>
</style>
<!-- Base themes for the app -->
<style name="Theme.TestApp" parent="Theme.Base">
<item name="actionBarStyle">@style/Widget.TestApp.ActionBar</item>
<item name="android:actionBarStyle">@style/Widget.TestApp.ActionBar</item>
</style>
<!-- Base Action Bar Style -->
<style name="Widget.TestApp.ActionBar" parent="Theme.Sherlock.Light.DarkActionBar">
</style>
如果我删除:
<item name="android:actionBarStyle">@style/Widget.TestApp.ActionBar</item>
为了使动作栏本身不会在3.0+中设置样式,我无法设置样式。
进行此设置的最佳方法是什么? AndroidManifest.xml将应用程序的样式指向“ Theme.TestApp”。
我的最终目标是在操作栏上具有自定义背景,以及自定义选项卡选择器的颜色和字体。 最好的方法是什么,因为我目前的方法效果不佳。
您必须为ActionBarSherlock 和本机ActionBar设置属性。 因此,例如,替换为:
<style name="Theme.Base" parent="FrameworkRoot.Theme">
<item name="textHeaderMaxLines">@integer/text_header_max_lines</item>
<item name="trackAbstractMaxLines">@integer/track_abstract_max_lines</item>
<item name="activatableItemBackground">@drawable/activatable_item_background</item>
</style>
有了这个:
<style name="Theme.Base" parent="FrameworkRoot.Theme">
<item name="textHeaderMaxLines">@integer/text_header_max_lines</item>
<item name="trackAbstractMaxLines">@integer/track_abstract_max_lines</item>
<item name="activatableItemBackground">@drawable/activatable_item_background</item>
<item name="android:textHeaderMaxLines">@integer/text_header_max_lines</item>
<item name="android:trackAbstractMaxLines">@integer/track_abstract_max_lines</item>
<item name="android:activatableItemBackground">@drawable/activatable_item_background</item>
</style>
带有“ android”前缀的属性指向本机ActionBar的内部资源,前面没有“ android”的属性指向ActionBarSherlock的资源。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.