设置Window.FEATURE_CUSTOM_TITLE会创建AndroidRuntimeException

HGP*_*GPB 2 android

我似乎无法通过这个错误:

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>
Run Code Online (Sandbox Code Playgroud)

我的活动是做以下事情:

@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);
    ...
Run Code Online (Sandbox Code Playgroud)

在哪里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>
Run Code Online (Sandbox Code Playgroud)

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

HGP*_*GPB 6

这种错误会让你感到精神错乱.

所以我碰巧Theme.Holo用作我的父主题.(我自己的主题延伸的主题)

文件说:

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

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

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

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

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

文档显示"每个活动包括操作栏":

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

所以,我现在将时间集中在改变动作栏而不是标题栏!