您无法将自定义标题与其他标题功能组合使用

bas*_*asu 4 android actionbarsherlock android-actionbar

在我的应用程序中,我正在使用ActionBarSherlock库.我也在使用自定义标题栏.这是我的onCreate:

requestWindowFeature(Window.FEATURE_CUSTOM_TITLE);
setContentView(R.layout.main_tab);
getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE, R.layout.custom_title);
Run Code Online (Sandbox Code Playgroud)

在我的styles.mxl

<style name="MyTheme" parent="Theme.Sherlock">
        <item name="android:background">#ff888888</item>
        <item name="android:windowNoTitle">false</item>
        <item name="android:windowTitleSize">50dp</item>
        <item name="android:windowTitleBackgroundStyle">@style/windowTitleBackgroundStyle</item>
    </style>
<style name="windowTitleBackgroundStyle">  
  <item name="android:background">#00688B</item>                
</style>
Run Code Online (Sandbox Code Playgroud)

在Manifest文件中,我使用MyTheme进行活动.

android:theme="@style/MyTheme"
Run Code Online (Sandbox Code Playgroud)

此代码适用于较低的Android版本(我已使用GB2.3.5进行了测试).但是当我使用ICS进行测试时,它崩溃了以下错误:"你无法将自定义标题与其他标题功能结合起来"我在StackOVerflow讨论中进行了彻底的讨论,但无法解决问题.解决方案尝试:1)假2)没有值-v11文件夹

cra*_*grf 10

我收到了同样的例外.

以下是我发现的内容: 在较新版本的Android中,只要选择了Holo主题,框架就会使用Window.FEATURE_ACTION_BAR功能.只要应用程序调用setFeatureInt(Window.FEATURE_CUSTOM_TITLE)并且已设置FEATURE_ACTION_BAR,框架就会抛出异常.

在我的例子中,values-v11文件夹中的styles.xml文件重新定义了我的主题以继承自android:Theme.Holo.当我试图在Android 3.0或更高版本上运行我的应用程序时 - 它崩溃了,因为Holo默认使用ActionBar.修复很简单.使用Holo时关闭ActionBar.以下是修订后的值-v11\styles.xml更改:

<style name="AppBaseTheme" parent="android:Theme.Holo.NoActionBar">
    <!-- API 11 theme customizations can go here. -->
</style>
Run Code Online (Sandbox Code Playgroud)

  • 由于@craigrf这是更好地<项目名称="机器人:windowActionBar">添加虚假</项目>的风格,而不是使用.NoActionBar,因为后者包括<项目名称="机器人:windowNoTitle">真正</项目> (6认同)