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