web-dev-qa-db-fra.com

Cette activité possède déjà une barre d'action fournie par le décor de fenêtre (FEATURE_ACTION_BAR)

Cette activité a déjà une barre d'action fournie par le décor de fenêtre. Ne demandez pas Window.FEATURE_ACTION_BAR et définissez windowActionBar sur false dans votre thème pour utiliser une barre d'outils à la place

C'est l'erreur que j'ai eue, j'ai cherché des solutions mais je n'ai pas trouvé de solution. Voici mon 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 (ma disposition d'activité)

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

Qu'est-ce que je fais mal?

19
Haim127

Dans votre utilisation du style AppTheme,

Theme.AppCompat.Light.NoActionBar

au lieu de

Theme.AppCompat.Light.DarkActionBar

Vous définissez un thème qui a une barre d'action, puis vous définissez la barre d'outils comme une barre d'action. C'est pourquoi vous obtenez cette erreur.

Utilisez plutôt le thème qui n'a pas de barre d'action et cela résoudra le problème.

75
Hirak Chhatbar

Utilisez le style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar" et partout utilisent le même thème que celui-ci pour maintenir le flux de contexte vers Android car il ne se confond pas entre deux ActionBar.

1
Ashwani
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. 
0
Vinod Pattanshetti