【问题标题】:How to set textColorSecondary on toolbar theme如何在工具栏主题上设置 textColorSecondary
【发布时间】:2017-09-20 12:39:29
【问题描述】:

我已经尝试了几天来解决工具栏中的多个 UI 元素颜色错误的问题。如果你看看下面的图片,你就会明白我的意思:

应该是白色的元素是黑色的,我只是不知道如何通过我的主题来解决这个问题。

这是我的 Themes.xml (抱歉里面乱七八糟,但主题化真的很难):

<?xml version="1.0" encoding="utf-8"?>
<resources>
<!-- Base application theme. -->
<style name="AppTheme" parent="Theme.GuidelinesCompat.Light.DarkToolbar">
    <item name="colorPrimary">@color/colorPrimary</item>
    <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
    <item name="colorAccent">@color/colorAccent</item>
    <item name="android:windowBackground">@color/colorBackground</item>
</style>

<style name="AppTheme.NoActionBar">
    <item name="windowActionBar">false</item>
    <item name="windowNoTitle">true</item>
    <item name="android:windowActionModeOverlay">true</item>
    <item name="toolbarStyle">@style/AppTheme.NoActionBar.ToolbarStyle</item>
    <item name="actionModeStyle">@style/AppTheme.NoActionBar.ActionModeStyle</item>
    <item name="searchViewStyle">@style/AppTheme.NoActionBar.SearchViewStyle</item>
    <!--<item name="android:actionModeBackground">@color/bg_action_mode</item>-->
    <!--<item name="android:textColorSecondary">@color/white</item>-->

</style>

<style name="AppTheme.ActionBar">
    <item name="android:windowActionModeOverlay">true</item>
</style>

<!-- Base toolbar theme. -->
<style name="AppTheme.NoActionBar.ToolbarStyle" parent="Widget.GuidelinesCompat.Toolbar">
    <item name="titleTextAppearance">@style/AppTheme.NoActionBar.ToolbarTitleTextAppearance</item>
</style>

<style name="AppTheme.NoActionBar.ToolbarTitleTextAppearance" parent="@style/TextAppearance.Widget.AppCompat.Toolbar.Title">
    <item name="android:textColor">@color/white</item>
    <item name="android:textColorSecondary">@color/white</item>
</style>

<!-- Base Action Mode styles -->
<style name="AppTheme.NoActionBar.ActionModeStyle" parent="Widget.GuidelinesCompat.ActionMode">
    <item name="background">@color/bg_action_mode</item>
    <!--<item name="android:actionModeBackground">@color/bg_action_mode</item>-->
    <!--<item name="android:actionOverflowButtonStyle">@style/ActionModeTitleTextStyle</item>-->
    <!--<item name="statusBarColor">@color/grey_100</item>-->
</style>

<style name="ActionModeTitleTextStyle" parent="Widget.GuidelinesCompat.ActionButton.Overflow">
    <item name="android:textColor">@color/white</item>
    <item name="android:textColorSecondary">@color/white</item>
</style>

<style name="AppTheme.NoActionBar.SearchViewStyle" parent="Widget.AppCompat.SearchView">
    <!-- Sets the search icon -->
    <item name="searchIcon">@drawable/ic_search_white_24dp</item>
    <!-- Gets rid of the "underline" in the text -->
    <!--<item name="queryBackground">@color/white</item>-->
    <!-- Gets rid of the search icon when the SearchView is expanded -->
    <!--<item name="searchHintIcon">@null</item>-->
    <!-- The hint text that appears when the user has not typed anything -->
    <!--<item name="queryHint">@string/menu_examination_search_hint</item>-->
    <item name="android:textAppearance">@style/SearchViewTextAppearance</item>
</style>

<style name="SearchViewTextAppearance">
    <item name="android:textColorHint">@color/white</item>
    <item name="android:textColor">@color/white</item>
    <item name="android:textColorSecondary">@color/white</item>
</style>

<!-- Theme applied to LoginActivity and SignUpActivity -->
<style name="AppTheme.Login" parent="AppTheme.NoActionBar">
    <item name="android:windowBackground">@color/colorPrimary</item>
    <item name="android:textColorHint">@color/iron</item>
    <item name="android:textColorPrimary">@color/white</item>
    <item name="colorControlNormal">@color/iron</item>
    <item name="colorControlActivated">@color/white</item>
    <item name="colorControlHighlight">@color/white</item>
    <item name="colorButtonNormal">@color/colorPrimaryDarker</item>
</style>

<style name="AppTheme.NavigationView">
    <item name="android:textColorSecondary">@color/colorTextSecondary</item>
</style>

<!-- Theme applied to Textview in LoginActivity and SignUpActivity -->
<style name="WhiteText" parent="@android:style/TextAppearance">
    <item name="android:textColor">@color/white</item>
</style>

<!-- Animations applied to dialog when entering or exiting -->
<style name="DialogAnimation">
    <item name="android:windowEnterAnimation">@anim/slide_up</item>
    <item name="android:windowExitAnimation">@anim/slide_down</item>
</style>

我发现如果我在 AppTheme.NoActonBar 中设置 textColorSecondary,我的所有控件都正确地涂成白色,但这会给我的所有对话框带来麻烦,现在 textColorSecondary 也设置为白色。

我希望有人可以告诉我一个解决方案,因为我没有想法。

【问题讨论】:

    标签: android android-toolbar android-theme


    【解决方案1】:

    试试这个here

    在您的工具栏布局中:

     <android.support.v7.widget.Toolbar
          xmlns:android="http://schemas.android.com/apk/res/android"
          xmlns:app="http://schemas.android.com/apk/res-auto"
          android:id="@+id/toolbar"
          android:layout_width="match_parent"
          android:layout_height="?attr/actionBarSize"
          android:minHeight="?attr/actionBarSize"
          app:theme="@style/ToolBarStyle"
          app:popupTheme="@style/ToolBarPopupStyle"
          android:background="@color/actionbar/>
    

    按照你的风格:

     <!-- ToolBar -->
      <style name="ToolBarStyle" parent="Theme.AppCompat">
          <item name="android:textColorPrimary">@android:color/white</item>
          <item name="android:textColorSecondary">@android:color/white</item>
          <item name="actionMenuTextColor">@android:color/white</item>      
          <item name="actionOverflowButtonStyle">@style/ActionButtonOverflowStyle</item>
          <item name="drawerArrowStyle">@style/DrawerArrowStyle</item>
     </style>
    

    【讨论】:

    • 你是男人 :) IT 工作。谢谢。将在两分钟内接受答案。
    猜你喜欢
    • 2015-07-25
    • 2016-04-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-09-26
    • 1970-01-01
    相关资源
    最近更新 更多