0

我用主題工具欄不消耗主題屬性

<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar"> 
    <item name="colorPrimary">@color/colorPrimary</item> 
    <item name="colorPrimaryDark">@color/colorPrimaryDark</item> 
    <item name="colorAccent">@color/colorAccent</item> 
</style> 

和工具欄看起來像這樣toolbar_ok

但CoordinatorLayour我需要自定義工具欄,而不是最頂級的元素(最上會崩潰佈局),所以我用下面的樣式活動:

<style name="AppTheme.NoActionBar" parent="AppTheme"> 
    <item name="windowActionBar">false</item> 
    <item name="windowNoTitle">true</item> 
</style> 

和工具欄在activity.xml

<android.support.v7.widget.Toolbar 
    android:id="@+id/ac_main_toolbar" 
    android:layout_width="match_parent" 
    android:layout_height="@dimen/action_bar_height" 
    tools:title="title" 
    app:theme="@style/AppTheme" 
    app:layout_scrollFlags="scroll|enterAlways|snap" 
    app:layout_collapseMode="pin"/> 

但它沒有填充AppTheme的顏色。而像這樣

toolbar_wrong

爲什麼?我需要我的主題顏色和點在工具欄的中心。

+0

你想讓給定的工具欄有第二個主題'AppTheme.NoActionBar'嗎? –

+0

不,我希望工具欄成爲第一個主題,app:theme =「@ style/AppTheme」。 第二個主題是父活動,所以最頂部的工具欄不會自動添加。 我希望手動添加的工具欄與默認的活動工具欄相同。 – DmitryBorodin

回答

0

經過一番研究,我發現,該工具欄主題不是AppCompat主題,應該是ThemeOverlay。*

對於我應該使用的黑暗動作欄主題

<style name="BarTheme.AppBarOverlay" parent="ThemeOverlay.AppCompat.Dark.ActionBar" /> 

not from parent="Theme.AppCompat.Light.DarkActionBar" 

修復了所有顏色問題。要修復標題和3個點(把它放在工具欄中間) - AppBarLayout高度應該是wrap_content(之前是固定大小),並且像素中的摺疊大小應該移動到AppBarLayout下的CollapsingToolbarLayout。

0

嘗試將android:background =「@ color/primary」添加到您的工具欄定義中。 像:

android.support.v7.widget.Toolbar 
android:id="@+id/ac_main_toolbar" 
android:layout_width="match_parent" 
android:layout_height="@dimen/action_bar_height" 
android:background="@color/primary" 
tools:title="title" 
app:theme="@style/AppTheme" 
app:layout_scrollFlags="scroll|enterAlways|snap" 
app:layout_collapseMode="pin"/> 
+0

android:background =「@ color/colorPrimary」for toolbar change nothing。 – DmitryBorodin

0

添加下列內容主題:

<!-- toolbar title and overflow menu color --> 
<item name="android:textColorSecondary">@color/white</item> 

而且你必須使用工具欄的高度以下垂直居中對齊:

<android.support.v7.widget.Toolbar 
    android:id="@+id/ac_main_toolbar" 
    android:layout_width="match_parent" 
    android:layout_height="?attr/actionBarSize" <!-- Height change --> 
    tools:title="title" 
    app:theme="@style/AppTheme" 
    app:layout_scrollFlags="scroll|enterAlways|snap" 
    app:layout_collapseMode="pin"/> 
+0

這不會改變點的顏色(右側的設置)。 高度不會改變,因爲我在工具欄上方有固定大小的摺疊佈局。所以我留下確切的48dp的工具欄(可以改變這一點)。 – DmitryBorodin

+0

我可以手動設置文本的顏色,點的顏色,文本的大小,點的大小等。但我認爲好的方法是從主題獲取此設置,點爲特定元素重新定義它。 – DmitryBorodin

+0

你也可以檢查[this](https://www.murrayc.com/permalink/2014/10/28/android-changing-the-toolbars-text-color-and-overflow-icon-color/)。 – Frosty