4

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

requestWindowFeature(Window.FEATURE_CUSTOM_TITLE);
setContentView(R.layout.main_tab);
getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE, R.layout.custom_title);

在我的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>

在清单文件中,我使用 MyTheme 进行活动。

android:theme="@style/MyTheme"

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

4

2 回答 2

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。这是修改后的 values-v11\styles.xml 更改:

<style name="AppBaseTheme" parent="android:Theme.Holo.NoActionBar">
    <!-- API 11 theme customizations can go here. -->
</style>
于 2013-03-17T22:09:54.977 回答
3

我有同样的问题并解决了它:

根本原因:在清单中,我错误地将这个标签从启动屏幕复制粘贴到我的活动中:@android:style/Theme.NoTitleBar 当我还在我的活动上请求 FEATURE_CUSTOM_TITLE 时发生致命异常,导致冲突。

解决方案:要修复它,我检查了以下 3 件事:1)OnCreate 方法:

protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        requestWindowFeature(Window.FEATURE_CUSTOM_TITLE);
        setContentView(R.layout.activity_login);
        getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE, R.layout.custom_titlebar);

    }

2)在您的 manifest.xml 中:确保只有这样的一行才会出现在启动屏幕中(如果您有的话): android:theme="@android:style/Theme.NoTitleBar 如果您想要自定义酒吧。

在应用程序标签中,我唯一的主题标签是这个:android:theme="@style/AppTheme"

在活动标签中,我没有主题标签。

3) Go to your activity's XML layout, and view it in GRAPHIC LAYOUT mode. Maye sure your that the Theme says AppTheme (its the the you put on the manifest) Mine said "No Title", so this was causing the problem.

于 2014-03-13T10:14:32.730 回答