适当的工具栏样式

时间:2017-06-08 09:27:35

标签: android toolbar

我想避免在所有布局中将样式应用到工具栏,所以我有一个我为它创建的样式:

<style name="DarkToolbar" >
        <item name="android:textColorPrimary">@color/white</item>
        <item name="android:textColorSecondary">@color/white</item>
        <item name="android:background">@color/blue</item>
        <item name="android:elevation">4dp</item>
</style>

我将其添加到我的主题中如下:

<style name="Theme" parent="Theme.AppCompat.Light.NoActionBar">
        <item name="colorPrimary">@color/blue</item>
        <item name="colorPrimaryDark">@color/blue</item>
        <item name="colorAccent">@color/blue</item>
        <item name="android:toolbarStyle">@style/DarkToolbar</item>
</style>

这是生成的工具栏: toolbar with style applied in theme

如您所见,标题和副标题的格式错误。如果我从主题中删除样式并将其直接应用到布局中的工具栏,我会得到以下结果:

enter image description here

两个图像都使用相同的样式。一个是通过应用主题应用

<item name="android:toolbarStyle">@style/DarkToolbar</item>

,第二个应用

直接应用于工具栏
style="@style/DarkToolbar"

有谁知道差异的原因? 还有,有谁知道为什么

<item name="android:textColorPrimary">@color/white</item>
<item name="android:textColorSecondary">@color/white</item>

没有申请?

由于

3 个答案:

答案 0 :(得分:1)

parent="Widget.AppCompat.Toolbar"添加到工具栏样式中。它是工具栏的默认样式。

例如:

<style name="DarkToolbar" parent="Widget.AppCompat.Toolbar">
    <item name="android:textColorPrimary">@color/white</item>
    <item name="android:textColorSecondary">@color/white</item>
    <item name="android:background">@color/blue</item>
    <item name="android:elevation">4dp</item>
</style>

答案 1 :(得分:0)

我认为这与

有关

&LT; item name =“android:theme”&gt; @ style / ThemeOverlay.AppCompat.Dark.ActionBar&lt; /项目&GT;

以你的风格

我个人觉得样式工具栏文本相当复杂,所以大部分最终都是我自己的TextView。如何在工具栏中使用自己的TextView。这很容易,虽然有点冗长。

答案 2 :(得分:0)

您在主题中将父级设置为无操作栏,因为这将为您提供运行时异常和零点异常,因为没有操作栏或工具栏来设置标题/子标题。尝试在主题中添加父级,工具栏或操作栏就像这样。

&#13;
&#13;
<?xml version="1.0" encoding="utf-8"?>
<resources>

    <style name="DarkToolbar">
        <item name="android:textColorPrimary">@color/white</item>
        <item name="android:textColorSecondary">@color/white</item>
        <item name="android:background">@color/blue</item>
        <item name="android:elevation">4dp</item>
    </style>

    <style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
        <item name="colorPrimary">@color/blue</item>
        <item name="colorPrimaryDark">@color/blue</item>
        <item name="colorAccent">@color/blue</item>
        <item name="android:toolbarStyle">@style/DarkToolbar</item>
    </style>
</resources>
&#13;
&#13;
&#13;