【问题标题】:Android Status Bar Prevent ColoringAndroid状态栏防止着色
【发布时间】:2015-02-26 21:50:28
【问题描述】:

我在阻止状态栏采用主要颜色时遇到问题。我想保持状态栏无样式,但在棒棒糖上,它总是采用我的 styles.xml 中定义的 primaryColor 的颜色

样式摘录:

  <style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar" >
    <item name="colorPrimaryDark">?attr/colorPrimary</item>
    <item name="colorAccent">?attr/colorPrimary</item>
    <item name="android:textColorPrimary">@android:color/primary_text_light</item>
    <item name="drawerArrowStyle">@style/DrawerArrowStyle</item>
</style>


<!-- Base application theme. -->
<style name="AppTheme.TransparentActionBar" parent="Theme.AppCompat.Light.NoActionBar">
    <item name="colorPrimaryDark">?attr/colorPrimary</item>
    <item name="colorAccent">?attr/colorPrimary</item>
    <item name="android:textColorPrimary">@android:color/primary_text_light</item>
    <item name="drawerArrowStyle">@style/DrawerArrowStyle</item>

    <item name="android:windowActionBarOverlay">true</item>
    <!-- Support library compatibility -->
    <item name="windowActionBarOverlay">true</item>

    <item name="android:windowBackground">@color/white</item>
</style>

<!-- START Market Themes -->

<style name="AppTheme.Blue" parent="AppTheme">
    <item name="colorPrimary">@color/primaryColorBlue</item>
</style>

样式/v21

 <style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar" >
    <item name="colorPrimaryDark">?attr/colorPrimary</item>
    <item name="colorAccent">?attr/colorPrimary</item>
    <item name="android:textColorPrimary">@android:color/primary_text_light</item>
    <item name="drawerArrowStyle">@style/DrawerArrowStyle</item>
</style>

<!-- Base application theme. -->
<style name="AppTheme.TransparentActionBar" parent="Theme.AppCompat.Light.NoActionBar">
    <item name="colorPrimaryDark">?attr/colorPrimary</item>
    <item name="colorAccent">?attr/colorPrimary</item>
    <item name="android:textColorPrimary">@android:color/primary_text_light</item>

    <item name="drawerArrowStyle">@style/DrawerArrowStyle</item>

    <item name="android:windowDrawsSystemBarBackgrounds">true</item>
    <item name="android:statusBarColor">@color/black</item>

    <item name="android:windowActionBarOverlay">true</item>
    <!-- Support library compatibility -->
    <item name="windowActionBarOverlay">true</item>

    <item name="android:windowBackground">@color/white</item>
    <item name="android:windowContentTransitions">true</item>
</style>

<style name="DrawerArrowStyle" parent="Widget.AppCompat.DrawerArrowToggle">
    <item name="spinBars">true</item>
    <item name="color">@android:color/white</item>
</style>

<style name="ToolBarStyle" parent="">
    <item name="android:elevation">@dimen/toolbar_elevation</item>
    <item name="popupTheme">@style/ThemeOverlay.AppCompat.Light</item>
    <item name="theme">@style/ThemeOverlay.AppCompat.Dark.ActionBar</item>

</style>

【问题讨论】:

    标签: android colors android-5.0-lollipop statusbar


    【解决方案1】:

    你说它是你的原色。 状态栏的颜色来自你的colorPrimaryDark,所以改变

    &lt;item name="colorPrimaryDark"&gt;?attr/colorPrimary&lt;/item&gt;

    <item name="colorPrimary">?attr/colorPrimary</item>
    <item name="colorPrimaryDark">@android:color/black</item>
    

    我认为这应该只在你的 style-v21 中是必要的,但我还没有足够接近任何东西来测试它。

    Docs here

    <resources>
      <!-- inherit from the material theme -->
      <style name="AppTheme" parent="android:Theme.Material">
        <!-- Main theme colors -->
        <!--   your app branding color for the app bar -->
        <item name="android:colorPrimary">@color/primary</item>
        <!--   darker variant for the status bar and contextual app bars -->
        <item name="android:colorPrimaryDark">@color/primary_dark</item>
        <!--   theme UI controls like checkboxes and text fields -->
        <item name="android:colorAccent">@color/accent</item>
      </style>
    </resources>
    

    【讨论】:

      猜你喜欢
      • 2014-10-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-11-20
      • 1970-01-01
      • 1970-01-01
      • 2020-07-24
      相关资源
      最近更新 更多