工具栏不使用主题属性

时间:2016-02-26 11:59:17

标签: android android-layout android-toolbar android-design-library

我使用主题

<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

为什么呢?我需要工具栏中心的主题颜色和点。

3 个答案:

答案 0 :(得分: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"/> 

答案 1 :(得分: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"/>

答案 2 :(得分: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。