2015-01-05 5 views
19

Questa attività ha già una barra delle azioni fornita dall'arredamento delle finestre. Non richiedere Window.FEATURE_ACTION_BAR e impostare windowActionBar su false nel tema per utilizzare una barra degli strumenti inveceQuesta attività ha già una barra delle azioni fornita dall'arredamento delle finestre (FEATURE_ACTION_BAR)

Questo è l'errore che ho ricevuto, ho cercato soluzioni ma non ho trovato come risolverlo. Questo è il mio codice:

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 (il mio layout di attività)

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

Cosa sto sbagliando?

+0

possibile duplicato del [Questa attività ha già una barra delle operazioni fornite dal decor finestra] (http://stackoverflow.com/questions/26515058/this-activity-already-has-an-action-bar- fornito dalla finestra-arredamento) –

+1

Hai detto che hai cercato soluzioni, ma il colpo più alto è il suggerimento duplicato pubblicato sopra. Non è esattamente lo stesso problema? – keyser

+0

Ma ho cercato e trovato, guarda che lo aggiungo allo stile della barra degli strumenti. Se lo aggiungerò all'AppTheme, l'app si bloccherà perché non è l'unica attività, e gli altri usano questa actionbar.so perché in basso mi punti se ho già provato quello che stai dicendo ora? – Haim127

risposta

72

In all'utilizzo stile AppTheme,

Theme.AppCompat.Light.NoActionBar 

invece di

Theme.AppCompat.Light.DarkActionBar 

si sta impostando un tema che ha un ActionBar e quindi si sta configurando come un toolbar ActionBar. Ecco perché stai ricevendo questo errore.

Utilizzare il tema che non ha invece barra di azione e risolverà il problema.

+0

Ma sto usando l'AppTheme per le attività degli altri e quando lo cambio, l'altro arresto anomalo dell'attività:/ – Haim127

+2

quindi applica il tema alle singole attività nel tuo manifest xml .... Crea uno stile separato con il genitore come Theme.AppCompat.NoActionBar e usa questo per l'attività in cui hai bisogno della barra degli strumenti –

+3

OK, ho aggiunto la riga 'android: theme =" @ style/ActionBarPopupThemeOverlay "' all'attività specifica e funziona. Grazie per l'aiuto – Haim127

1

Utilizzare lo stile name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar" e ovunque utilizzare lo stesso tema di questo flusso di contesto di Android per Android in quanto non viene confuso tra due ActionBar.

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. 
+0

Si prega di includere anche il contenuto di res/valori/colore e res/valori/stile di cui sopra. – varun113

Problemi correlati