2016-05-14 11 views
-1

soundcloudsに似たアクションバーを追加しようとしています。私はandroid developerウェブサイト上のアクションバーをカスタマイズする方法に関する指示に従っています。エラーは、アクションバーが既に提供されているようだが、別のアクションバーを作成しようとしています。ここで不正な状態の例外です。ツールバーのためにアクティビティを開始できません

java.lang.IllegalStateException: This Activity already has an action bar supplied by the window decor. Do not request Window.FEATURE_SUPPORT_ACTION_BAR and set windowActionBar to false in your theme to use a Toolbar instead. 

のonCreate()されています。私はちょうどのためのXMLコードとJavaのコードを削除しようとしてい

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    tools:context=".view.MainActivity"> 

    <android.support.v7.widget.Toolbar 
     android:id="@+id/main_toolbar" 
     android:layout_width="match_parent" 
     android:layout_height="?attr/actionBarSize" 
     android:background="?attr/colorPrimary" 
     android:elevation="4dp" 
     android:theme="@style/ThemeOverlay.AppCompat.ActionBar" 
     app:popupTheme="@style/ThemeOverlay.AppCompat.Light"/> 

</RelativeLayout> 

Toolbar toolbar = (Toolbar) findViewById(R.id.main_toolbar); 
setSupportActionBar(toolbar); 
addBirthdayFragment(); 

ここでは、レイアウトファイルですツールバー、レイアウトとonCreateそれぞれで、これは動作していません。同じエラーは依然として続きます。私が使っているテーマとは関係がありますが、私は何が正確かはわかりません。テーマはデフォルトのものなので私は混乱しているので、私はこれを期待していませんでした。

<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar"> 
     <!-- Customize your theme here. --> 
     <item name="colorPrimary">@color/colorPrimary</item> 
     <item name="colorPrimaryDark">@color/colorPrimaryDark</item> 
     <item name="colorAccent">@color/colorAccent</item> 
</style> 

サイドの質問:私はタブ付きのように見えてSoundcloudのアクションバーの外観を実現しようとしています

は、ここに私のテーマです。 this結果が必要な場合や、タブ付きアクションバーに使用されている他のウィジェットがある場合は、これを行うべきですか?

ありがとうございました。

+0

なぜあなたは嫌いですか? –

答えて

0

Androidが提供するActionBarの代わりにツールバーを使用すると言ったことがないので、Androidは苦情を申し立てています。 Androidはこのことについて知っているように、あなたはあなたのスタイルにこれらを追加する必要があります。

<item name="windowActionBar">false</item> 
    <item name="windowNoTitle">true</item> 

あなたには、いくつかの他の時間を、時にはAndroidのアクションバーを使用して、あなたのツールバーしたい場合は、上記の2行を追加することができますあなたのAppThemeを拡張し、AndroidManifest.xmlの新しいスタイルに変更してください:

+0

私の答えを正しいものとしてマークしてくれてありがとう:) ActionBarタブについては、これをチェックすることができます:http://developer.android.com/training/implementing-navigation/lateral.html#tabs –

0

あなたのコードは次のとおりです。

<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar"> 
     <!-- Customize your theme here. --> 
     <item name="colorPrimary">@color/colorPrimary</item> 
     <item name="colorPrimaryDark">@color/colorPrimaryDark</item> 
     <item name="colorAccent">@color/colorAccent</item> 
</style> 

ラインがparent="Theme.AppCompat.Light.DarkActionBar"ダークアクションバーを言います。 NoActionBarに変更する必要があります。

<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar"> 
     <!-- Customize your theme here. --> 
     <item name="colorPrimary">@color/colorPrimary</item> 
     <item name="colorPrimaryDark">@color/colorPrimaryDark</item> 
     <item name="colorAccent">@color/colorAccent</item> 
</style> 
+0

助けてくれてありがとう。完璧に働いた。 –

+0

あなたは大歓迎です。他人が上にそれを見ることができるように答えを受け入れてください。 – learner

関連する問題