繁体   English   中英

在Android 4.0+上消失的ActionBar

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM