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
を変更することです:
は、ナビゲーションアイコンを壊し、私の設定が間違って何ですか?
記録のために、私はテーマオーバーレイのtoolbarStyle
を削除しようとし、ツールバーのレイアウトのXMLに直接使用しましたstyle="@style/App.Style.Toolbar"
。
これはタイトルのテキストの外観に正しく適用され、ナビゲーションアイコンが壊れていませんが、これは私のアプリのすべてのツールバーにスタイルを適用する必要があるので最適ではありません。始まり。
おかげで助けのために、 ピエール