2015-01-05 60 views
19

此活動已經有一個窗口裝飾提供的操作欄。請勿在您的主題中請求Window.FEATURE_ACTION_BAR並將windowActionBar設置爲false以使用工具欄代替此活動已經有一個窗口裝飾提供的操作欄(FEATURE_ACTION_BAR)

這是我得到的錯誤,我搜索瞭解決方案,但未找到解決方法。 這是我的代碼:

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

我在做什麼錯?

+0

可能重複http://stackoverflow.com/questions/26515058/this-activity-already-has-an-action-bar- –

+1

你說你搜索的解決方案,但最熱門的是上面發佈的重複建議。這不完全是同一個問題嗎? – keyser

+0

但我搜索並找到它,看起來我將它添加到工具欄的樣式中。如果我將它添加到AppTheme,應用程序將崩潰,因爲它不是唯一的活動,而其他人使用此actionbar.so爲什麼如果我已經嘗試過你現在說的話,那我就下來說點? – Haim127

回答

72

在你AppTheme風格的使用,而不是

Theme.AppCompat.Light.NoActionBar 

Theme.AppCompat.Light.DarkActionBar 

要設置有一個動作條一個主題,然後要設置工具欄作爲動作條。這就是爲什麼你得到這個錯誤。

使用沒有操作欄的主題,它會解決問題。

+0

但是我正在使用AppTheme來處理其他活動,當我更改它時,另一個活動的崩潰:/ – Haim127

+2

然後將主題應用到您的清單xml中的單個活動....創建一個與父類一樣的獨立樣式作爲Theme.AppCompat.NoActionBar和使用此工具,您需要工具欄 –

+3

好吧,我添加了行'android:theme =「@ style/ActionBarPopupThemeOverlay」'到具體的活動,它的工作。謝謝你幫助 – Haim127

1

使用風格name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar" 和無處不在使用相同的主題,因爲它保持上下文流向Android,因爲它不會混淆兩個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

還請包括上面提到的res/values/color和res/values/style的內容。 – varun113

相關問題