This Activity already has an action bar supplied b

2020-06-08 13:18发布

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

This is the error I got, I searched for solutions but I didn't find how to solve it. This is my code:

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(my activity layout)

<?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);
    }
}

What am I doing wrong?

3条回答
Viruses.
2楼-- · 2020-06-08 13:30

In your AppTheme style use,

Theme.AppCompat.Light.NoActionBar

instead of

Theme.AppCompat.Light.DarkActionBar

You are setting a theme that has an actionbar and then you are setting toolbar as an actionbar. That's why your are getting this error.

Use the theme that has no actionbar instead and it will fix the issue.

查看更多
别忘想泡老子
3楼-- · 2020-06-08 13:34
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. 
查看更多
霸刀☆藐视天下
4楼-- · 2020-06-08 13:37

Use style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar" and everywhere use the same Theme as this maintain flow of Context to Android as it do not get confused between two ActionBar.

查看更多
登录 后发表回答