无法将自定义标题与其他标题功能相结合

Mar*_*vie 13 android

我之后调用setContentView()时收到此错误

    requestWindowFeature(Window.FEATURE_CUSTOM_TITLE);
    getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE, R.layout.maintitlebar);
Run Code Online (Sandbox Code Playgroud)

代码在我的类的onCreate()中,它扩展了ListActivity.我的清单XML文件显示了应用程序的默认AppTheme:

     android:theme="@style/AppTheme"
Run Code Online (Sandbox Code Playgroud)

我已将styles.xml更新为:

<resources>
   <style name="AppTheme" parent="android:Theme.Light" >
    <item name="android:windowNoTitle">true</item>
   </style>   
</resources>
Run Code Online (Sandbox Code Playgroud)

这似乎与此错误消息的主要帖子一致.我还清理了构建,但我仍然收到上述错误消息.有谁知道造成冲突的原因是什么?

an0*_*00b 32

我有一个类似的问题让我疯了:我有两个版本的同一个应用程序使用共享库项目作为他们的公共代码(每个应用程序的95%以上由该共享库项目组成):一个运行良好,没有任何问题任何.其他崩溃开始时会出现与您描述的相同的错误消息和症状:

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

布局XML文件也很常见!所以,我找不到任何解释这个奇怪的问题.

在我,我和我之间进行了很多头脑风暴之后,我发现两个应用程序之间的唯一区别是运行正常的应用程序在AndroidManifest.xml中有这个:

<uses-sdk android:minSdkVersion="7" android:targetSdkVersion="7" />
Run Code Online (Sandbox Code Playgroud)

崩溃的那个在它的AndroidManifest.xml中有这个:

<uses-sdk android:minSdkVersion="7" android:targetSdkVersion="13" />
Run Code Online (Sandbox Code Playgroud)

所以,你看,Android UI被吹捧为第四代UI框架,其中UI是声明性的并且是独立主题的,但在一天结束时它们都是相同的:用C开发(例如)因为Android开发框架充满了这样的地雷,编译器在编译时不会告诉你任何东西,抛出的异常也不会告诉你.相反,你必须依靠**运气找到一小段文档(可能存在或可能不存在),为您提供关于在哪里寻找问题根本原因的提示.

我希望这些信息对许多遇到同样问题的人有所帮助.

  • 将此添加到自定义样式解决了以下问题:<item name ="android:windowActionBar"> false </ item> (4认同)
  • 我有同样的问题,但没有找到任何解决方案.我该怎么办?(我添加了这个android:theme ="@ android:style/Theme") (2认同)

小智 19

您应该 <item name="android:windowNoTitle">false</item> 在自定义主题中使用


use*_*844 13

我有同样的问题,这是它对我有用的:

AndroidManifest.xml中

< application
   ...
   ...
   android:theme="@style/CustomTheme" >
Run Code Online (Sandbox Code Playgroud)

Styles.xml

< style name="CustomTheme" parent="android:Theme">
< /style>
Run Code Online (Sandbox Code Playgroud)

MainActivity.java

1) super.onCreate(savedInstanceState);

2) requestWindowFeature(Window.FEATURE_CUSTOM_TITLE);

3) setContentView(R.layout.activity_main);

4) getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE, R.layout.title1);

如上所示,代码的顺序很重要.

如果你有:

1) requestWindowFeature(Window.FEATURE_CUSTOM_TITLE);

2) setContentView(R.layout.activity_main);

3) super.onCreate(savedInstanceState);

4) getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE, R.layout.title1);

你会得到这个例外:

android.view.InflateException:二进制XML文件行#37:错误膨胀类片段

  • 此更改消除了错误并显示了我的自定义窗口标题,但也大大改变了我的应用程序其余部分的外观. (2认同)