2

我似乎无法克服这个错误:

android.util.AndroidRuntimeException:您不能将自定义标题与其他标题功能结合使用

我正在运行 API > 14。

清单如下:

    <activity
        android:name=".activity.ActivityWelcome"
        android:label="@string/app_label_name"
        android:launchMode="singleTask"
        android:clearTaskOnLaunch="true"
        android:theme="@style/My.Theme">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>

我的活动正在执行以下操作:

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    requestWindowFeature(Window.FEATURE_CUSTOM_TITLE);
    setContentView(R.layout.welcome);
    getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE, R.layout.window_title_main);
    ...

在哪里R.layout.window_title_main

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/layout_title"
    android:orientation="horizontal"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:gravity="center_vertical"
    android:paddingLeft="5dp" >

    <TextView
        android:id="@+id/textview_title"
        android:drawableLeft="@null"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:ellipsize="marquee"
        android:marqueeRepeatLimit="-1"/>

</LinearLayout>

当它似乎对其他人有用时,为什么这不起作用?

4

3 回答 3

6

这种错误会驱使你发疯甚至超越。

所以我碰巧被Theme.Holo用作我的父主题。(我自己的主题扩展的主题)

文档说:

...操作栏包含在使用 Theme.Holo 主题(或其后代之一)的所有活动中,当 targetSdkVersion 或 minSdkVersion 属性设置为“11”或更大时,这是默认主题。

http://developer.android.com/guide/topics/ui/actionbar.html#Adding(第一段)

好的,所以当我尝试完成上述过程(我的问题)时,我得到了错误:

您不能将自定义标题与其他标题功能结合使用

好吧,那是因为,默认情况下,操作栏已经设置好了,它也不允许您使用自定义标题栏。

文档显示“每个活动都包括操作栏”:

这样,当应用程序在Android 3.0或更高版本上运行时,系统会将全息主题应用于每个活动,因此每个活动都包含操作栏。

所以,我现在将把时间集中在更改操作栏而不是标题栏上!

于 2012-12-10T18:00:04.370 回答
2

FEATURE_CUSTOM_TITLE

<item name="android:windowNoTitle">true</item>

是互斥的。消除

<item name="android:windowNoTitle">true</item>

它会再次起作用。

于 2012-12-10T16:52:39.587 回答
0

作为初学者,大多数答案对我的情况没有帮助。所以这是我的答案。

转到您的 android 项目中的 res/values 文件夹并检查 strings.xml(此文件可能因您的情况而异,例如 theme.xml)

在资源标签下的文件中检查您是否有样式标签。如果您没有找到它,请将下面提到的代码添加为资源标签的子项

像下面的东西

<resources>
    <style name="SomeNameHere">
        <item name="android:windowNoTitle">true</item>
    </style>
</resources>

如果您已经有样式标签,只需将下面的代码添加到您的样式标签

    <item name="android:windowNoTitle">true</item>
于 2015-02-20T14:51:53.927 回答