【Android开发经验】This Activity already has an action bar supplied by the window decor

问题描述:继承自AppCompatActivity,使用Toolbar替代ActionBar的时候,出现错误

错误信息:

  • 2.Caused by: java.lang.IllegalStateException: This Activity already has an action bar supplied by the window decor. Do not request Window.FEATURE_ACTION_BAR and set windowActionBar to false in your theme to use a Toolbar instead.

问题原因描述:由于Activity已存在ActionBar,所以使用Toolbar进行替换时出错

解决思路:想办法去掉ActionBar

解决方案

  • 1.使用Theme去掉ActionBar。使用Theme.AppCompat.Light.NoActionBar或者是Theme.AppCompat.NoActionBar主题,即可去掉ActionBar,即可解决此问题。

    代码如下

<resources>
    <style name="AppTheme" parent="AppTheme.Base">
    </style>
    <style name="AppTheme.Base" parent="Theme.AppCompat.NoActionBar">
        <item name="colorPrimary">@color/accent_material_light</item>
        <item name="colorPrimaryDark">@color/accent_material_light</item>
        <item name="android:windowBackground">@color/dark</item>
    </style>
</resources>
  • 2.若不能使用以上方案,则设置Theme的属性解决此问题。

在项目中的所有values-xx文件夹中的styles.xml中添加下面代码,从而去掉ActionBar

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

有一个细节需要注意,因为这几个属性对版本的要求不同,所以如果某个属性在你的App版本下不能识别,删除保留其他即可。

转载请注明出处:http://blog.csdn.net/zhaokaiqiang1992

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-08-01 19:23:24

【Android开发经验】This Activity already has an action bar supplied by the window decor的相关文章

java.lang.IllegalStateException: This Activity already has an action bar supplied by the window decor. Do not request Window.FEATURE_SUPPORT_ACTION_BAR and set windowActionBar to false in your theme t

异常信息: Caused by: java.lang.IllegalStateException: This Activity already has an action bar supplied by the window decor. Do not request Window.FEATURE_SUPPORT_ACTION_BAR and set windowActionBar to false in your theme to use a Toolbar instead. 问题原因: 当在

Android学习路线(七)设置Action Bar

在action bar最今本的形式中,它仅仅在左边展示了activity的标题以及应用的icon.即使在这种简单的形式中,它也只是告诉用户现在在应用的哪个activity中,同时为你的应用保持一个标识. 图1. 一个展示应用icon和activity标题的action bar 设置一个基本的action bar需要你的应用使用支持action bar的主题.如何来请求这样的主题要看你所选择的你的应用最低支持的Android版本.因此本课会根据应用支持的不同的Android最低版本分为两个部分.

Android学习路线(八)为Action bar添加action按钮

Action bar允许你为与当前应用上下文相关的最重要的action items添加action按钮.那些直接显示在action bar上的icon或者文字都被称作action buttons.那些不适合action bar或者不是那么重要的Actions将会被隐藏在action overflow(译者注:action bar最右侧的垂直的三个点)里. 图1. 一个包含Search功能的action button和用来展示附加action的action overflow. 在XML文件中指定A

Android学习路线(九)为Action Bar添加Style

这里先贴出原文,下次再来翻译::p 原文地址:http://developer.android.com/training/basics/actionbar/styling.html The action bar provides your users a familiar and predictable way to perform actions and navigate your app, but that doesn't mean it needs to look exactly the

Android UI开发第二十四篇——Action Bar

Action bar是一个标识应用程序和用户位置的窗口功能,并且给用户提供操作和导航模式.在大多数的情况下,当你需要突出展现用户行为或全局导航的activity中使用action bar,因为action bar能够使应用程序给用户提供一致的界面,并且系统能够很好根据不同的屏幕配置来适应操作栏的外观.你能够用ActionBar的对象的API来控制操作栏的行为和可见性,这些API被添加在Android3.0(API 级别 11)中. Action bar的主要目的是: 1.  提供一个用于识别应用

【Android开发经验】&lt;Activity&gt;标签下常见属性介绍

转载请注明出处:http://blog.csdn.net/zhaokaiqiang1992 下面是Activity标签下所有的属性值,简单了解下这些属性的意思. 还有一些属性没有介绍,因为资料找的好累啊,以后不做这样的工作了,这些属性虽然费了好大劲,但是感觉收获很少,毕竟用的就很少,大家扫一眼就够了,别太费劲去研究这些平常用不到的属性,不利于学习!

Android设计和开发系列第二篇:Action Bar(Develop—API Guides)

Action Bar IN THIS DOCUMENT Adding the Action Bar Removing the action bar Using a logo instead of an icon Adding Action Items Handling clicks on action items Using split action bar Navigating Up with the App Icon Adding an Action View Handling collap

Android之Action Bar

Action Bar在实际应用中,很好地为用户提供了导航,窗口位置标识,操作点击等功能.它出现于Android3.0(API 11)之后的版本中,在2.1之后的版本中也可以使用. 添加与隐藏Action Bar 在3.0之后的版本中(android:minSdkVersion 或者 android:targetSdkVersion 属性被设置成11或者更高),默认在activity中添加了Action Bar,不用额外添加.如果不想在activity中使用Action Bar,我们可以通过设定a

Android中文翻译 - Adding the Action Bar 添加活动栏(action bar)

2014-10-28 张云飞VIR 翻译自:https://developer.android.com/training/basics/actionbar/index.html 添加活动栏(Adding the Action Bar) 译者注:我找不到更好的词汇翻译action bar,虽然我也认为 活动栏 不是个好的翻译,但总要有个中文名字.不过为了方便识别,本文仍继续使用英文的actionbar 活动栏action bar 是非常重要的设计元素之一,你可以为你的app中的activity来实