0

我阅读了http://android-developers.blogspot.com/2012/01/say-goodbye-to-menu-button.html但有一些问题。对于 pre-honeycomb 我想要一个自定义标题,对于 post-honeycomb 我想要默认标题。当我尝试在 ICS 上运行我的应用程序时

android.util.AndroidRuntimeException: You cannot combine custom titles with other title features

如果我删除自定义标题,它在所有版本上都可以正常工作,只是没有自定义标题。

在 values-v11 我有包含以下内容的 theme.xml 文件:

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <style name="customTheme" parent="android:Theme.Holo.Light">
    </style>
</resources>

所以我的主题文档说基本上不使用自定义主题。

如果我删除

requestWindowFeature(Window.FEATURE_CUSTOM_TITLE);
getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE, R.layout.title);

然后主题在 ICS 上正确显示。

我无法想象我必须在编码级别检查我运行的 API 级别以及是否请求窗口功能,这应该由系统处理。

谢谢。

4

1 回答 1

2

与这个问题非常相似。我猜操作栏被认为是标题功能,因此将其关闭可以消除异常。

不过,我仍然对这个问题感到有些困惑。你说你想要 post-honeycomb 的默认标题,但你不能使用自定义标题,也不能使用默认操作栏。如果你真的想做你所要求的(< 3.0的自定义标题,> = 3.0的默认操作栏),那么你需要在调用window.requestFeature等之前检查Build.VERSION.SDK_INT。这就是它的完成方式actionBarCompat例子就是这种事情的。

于 2012-02-07T15:26:49.527 回答