2016-07-04 7 views
3

AppBarLayoutの中にToolbarがあります。ツールバーのデフォルトスタイルとナビゲーションアイコン

<style name="App.ThemeOverlay.Toolbar" parent="ThemeOverlay.AppCompat.Dark.ActionBar"/> 

そしてActivityに適用テーマ:テーマに

<android.support.design.widget.AppBarLayout 
    android:id="@+id/appbarlayout" 
    android:layout_height="wrap_content" 
    android:layout_width="match_parent" 
    android:theme="@style/App.ThemeOverlay.Toolbar"> 

    <android.support.v7.widget.Toolbar 
     android:id="@+id/toolbar" 
     android:layout_height="?attr/actionBarSize" 
     android:layout_width="match_parent"/> 

</android.support.design.widget.AppBarLayout> 

:ここ は、両方のビューのXMLで今

<style name="App.Theme" parent="Theme.AppCompat.Light.NoActionBar"> 
    <item name="colorPrimary">@color/colorPrimary</item> 
    <item name="colorPrimaryDark">@color/colorPrimaryDark</item> 
    <item name="colorAccent">@color/colorAccent</item> 
    <item name="android:windowBackground">@android:color/white</item> 
</style> 

、私はカスタムを適用したいですツールバーのtitleTextAppearance

レイアウトのXMLにapp:titleTextAppearanceを使用できますが、私のアプリのすべてのツールバーがすべてのレイアウトでテキストの外観を設定せずに同じスタイルを持つようにテーマから設定したいと考えています。

AppCompatのソースコードを少し掘り下げたところ、Toolbarは、現在のテーマのtoolbarStyleをデフォルトテーマとして使用しています。

このスタイルのデフォルト値はWidget.AppCompat.ActionBarです。

<style name="App.ThemeOverlay.Toolbar" parent="ThemeOverlay.AppCompat.Dark.ActionBar"> 
    <item name="toolbarStyle">@style/App.Style.Toolbar</item>  
</style> 

<style name="App.Style.Toolbar" parent="Widget.AppCompat.ActionBar"> 
    <item name="titleTextAppearance">@style/App.TextAppearance.Toolbar.Title</item> 
</style> 

<style name="App.TextAppearance.Toolbar.Title" parent="TextAppearance.Widget.AppCompat.Toolbar.Title"> 
    <item name="android:textColor">#00FF00</item> (this is some green) 
    <item name="android:textAllCaps">true</item> 
</style> 

これは実際に私のツールバーのtitleTextAppearanceを上書きしますが、それはまた、ナビゲーションアイコンを壊しています:

だから私の最初の推測では、私のテーマオーバーレイでこのスタイルをオーバーライドして、この新しいスタイルでtitleTextAppearanceを変更することです:

Toolbar Style Fail

は、ナビゲーションアイコンを壊し、私の設定が間違って何ですか?

記録のために、私はテーマオーバーレイのtoolbarStyleを削除しようとし、ツールバーのレイアウトのXMLに直接使用しましたstyle="@style/App.Style.Toolbar"

これはタイトルのテキストの外観に正しく適用され、ナビゲーションアイコンが壊れていませんが、これは私のアプリのすべてのツールバーにスタイルを適用する必要があるので最適ではありません。始まり。

おかげで助けのために、 ピエール

答えて

4

あなたのデフォルトのスタイルはWidget.AppCompat.Toolbar、ないWidget.AppCompat.ActionBar拡張する必要があります。その後、正常に動作します。

関連する問題