此活动已经有一个由窗口装饰提供的操作栏(FEATURE_ACTION_BAR)

时间:2015-01-05 17:41:41

标签: android android-layout android-activity android-toolbar

此活动已经有一个由窗口装饰提供的操作栏。请勿在主题中请求Window.FEATURE_ACTION_BAR并将windowActionBar设置为false以使用工具栏

这是我得到的错误,我搜索了解决方案,但我没有找到解决方法。 这是我的代码:

styles.xml

<!-- Base application theme. -->
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
    <item name="colorPrimary">@color/myPrimaryColor</item>
    <item name="colorPrimaryDark">@color/myPrimaryDarkColor</item>
    <item name="colorAccent">@color/myAccentColor</item>

    <item name="android:textColorPrimary">@color/myTextPrimaryColor</item>
</style>

<style name="ActionBarPopupThemeOverlay" parent="Theme.AppCompat.Light.NoActionBar">
    <item name="windowActionBar">false</item>
</style>

<style name="Toolbartitle" parent="@style/TextAppearance.Widget.AppCompat.Toolbar.Title">
    <item name="android:textColor">@android:color/white</item>
</style>

<style name="ToolbarSubtitle" parent="@style/TextAppearance.Widget.AppCompat.Toolbar.Subtitle">
    <item name="android:textColor">#56FFFFFF</item>
</style>

send_comment.xml (我的活动布局)

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
              android:orientation="vertical"
              android:layout_width="match_parent"
              android:layout_height="match_parent">
    <android.support.v7.widget.Toolbar
            xmlns:app="http://schemas.android.com/apk/res-auto"
            android:id="@+id/my_toolbar"
            android:layout_height="128dp"
            app:popupTheme="@style/ActionBarPopupThemeOverlay"
            android:layout_width="match_parent"
            android:background="?attr/colorPrimary"
            android:paddingLeft="72dp"
            android:paddingBottom="16dp"
            android:gravity="bottom"
            app:titleTextAppearance="@style/Toolbartitle"
            app:subtitleTextAppearance="@style/ToolbarSubtitle"
            app:theme="@style/ThemeOverlay.AppCompat.Light"
            android:title="תגובה"
            />
</RelativeLayout>

SendComment.java

public class SendComment extends ActionBarActivity {
    private Toolbar toolbar;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.send_comment);
        toolbar = (Toolbar) findViewById(R.id.my_toolbar);
        toolbar.setTitle("");
        setSupportActionBar(toolbar);
    }
}

我做错了什么?

3 个答案:

答案 0 :(得分:74)

在AppTheme风格中使用,

Theme.AppCompat.Light.NoActionBar

而不是

Theme.AppCompat.Light.DarkActionBar

您正在设置一个包含操作栏的主题,然后您将工具栏设置为操作栏。这就是你得到这个错误的原因。

使用没有操作栏的主题,它将解决问题。

答案 1 :(得分:1)

使用样式name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar" 并且在任何地方使用相同的主题,因为它保持了Context到Android的流程,因为它不会在两个ActionBar之间混淆。

答案 2 :(得分:0)

Define this style 
<style name="NoActionBarTheme" parent="Theme.AppCompat.Light.NoActionBar">
            <!-- Customize your theme here. -->
            <item name="textColorError">@color/design_textinput_error_color_light</item>
            <item name="android:windowNoTitle">true</item>
            <item name="android:windowActionBar">false</item>
            <item name="android:actionMenuTextColor">@color/color_white</item>
            <item name="drawerArrowStyle">@style/DrawerArrowStyle</item>
        </style> 
Please use this in your androidmanifest.xml file.This will resolve your problem.