function自定义标题:无法在API 11及更高版本上合并自定义标题

我有一个项目,我设置了:

  • minSdkversion设置为10
  • MainActivity是一个TabActivity

onCreate方法中的代码是这样的:

super.onCreate(savedInstanceState); requestWindowFeature(Window.FEATURE_CUSTOM_TITLE); setContentView(R.layout.main); getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE, R.layout.custom_title); ... 

以前的设置,一切正常! 但是,如果我将minSdkVersion设置为11或更高,则会发生以下exception:

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

我不明白为什么发生这只是改变minSdkVersion。 我在这个网站上遇到了这个问题。 我试过设置:

  • Theme.NoTitleBar在主要布局中,之后也在Manifest文件中
  • 我把这3条线放在所有可能的位置上
  • 如果我在第一行注释,当我调用我的CustomTitle布局的TextView引用的东西时,会发生NullPointerException
  • 我尝试设置,在theme.xml文件声明,“windowNoTitle”= true

因为我只使用API​​ 11提供的函数,所以我想在加载应用程序之前将minSdk设置为11。 我能怎么做 ?? 我需要帮助

编辑 :清单中的minSdkVersion = 10和Theme.NoTitleBar会出现相同的错误。 删除它,都像以前一样工作。 任何人都可以提供一个工作代码(清单和活动代码)设置自定义标题时,API是11岁或以上? 很多

由我自己修复。 我不知道为什么,只是简单地为每个活动的声明添加清单文件“主题”属性,所有的作品:

由此:

 <activity android:name=".CheckActivity" android:configChanges="orientation" android:screenOrientation="portrait" </activity> 

对此:

 <activity android:name=".CheckActivity" android:configChanges="orientation" android:screenOrientation="portrait" android:theme="@android:style/Theme" > </activity> 

@kinghomer我已经尝试CUSTOM_TITLE其实在2.2(API 8)上。 让我尝试一下API 11,回到你身边!

在此之前,你不需要在任何地方制作Theme.NoTitleBar,可以直接在.java文件中进行控制。 给我一些时间,会回来的!

res / values-v11 defalut使用此代码:

 <style name="AppBaseTheme" parent="android:Theme.Holo.Light"> <!-- API 11 theme customizations can go here. --> </style> 

将“android:Theme.Holo.Light”更改为“@android:style / Theme”就可以了!

提示:如果你的项目没有“res / values-v11”,那么检查你的项目引用的“lib项目”。

除了被接受的答案之外,还有另一种解决方法:

 <application android:allowBackup="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/CustomTheme" > 

theme归属分配给基于xml的mainifest中的application ,这应该适用于所有活动。

当您尝试添加自定义标题栏以及通过ActionBarActivityAppcomActivity扩展您的活动时,会发生此问题。 这两个活动类已经定义了标题栏。 因此,当您尝试添加自定义标题栏时,会出现冲突,使用哪个标题栏 – 您的自定义标题栏或由活动提供的标题栏扩展。

要解决这个问题,只要扩展你的Activity ,没有任何预定义的标题栏,所以你会被接受没有任何冲突。

 public void MyActivy extends Activity { // your code } 

我刚刚在AndroidManifest.xml文件的activity中添加了android:theme="@android:style/Theme" ,它工作得很好。

 <activity android:name=".MainActivity" android:theme="@android:style/Theme" > </activity> 

希望这也适用于你。