设置通知栏与导航栏Xamarin相同的颜色

时间:2017-06-29 02:19:31

标签: xamarin xamarin.android xamarin.forms

我正在开发一个使用Xamarin Forms的项目。 我按照James Montemagno的指南https://blog.xamarin.com/material-design-for-your-xamarin-forms-android-apps/ 但我无法在通知栏和导航栏中获得相同的颜色

我正在像这样

在App XAML中设置导航栏颜色
     <ResourceDictionary>
        <Style TargetType="NavigationPage">
            <Setter Property="BarBackgroundColor" Value="#3b5998"/>
            <Setter Property="BarTextColor" Value="White"/>
        </Style>
    </ResourceDictionary>

style.xml values-v21 / style.xml 与指南中的相同

 <resources>
  <style name="MyTheme" parent="MyTheme.Base">
  </style>
  <style name="MyTheme.Base" parent="Theme.AppCompat.Light.NoActionBar">
    <item name="colorPrimary">@color/primary</item>
    <item name="colorPrimaryDark">@color/primaryDark</item>
    <item name="colorAccent">@color/accent</item>
    <item name="android:windowBackground">@color/window_background</item>
    <item name="windowActionModeOverlay">true</item>
  </style>
</resources>

<resources>
  <style name="MyTheme" parent="MyTheme.Base">
    <item name="android:windowDrawsSystemBarBackgrounds">true</item>
    <item name="android:statusBarColor">#3b5998</item>
  </style>
</resources>

我在values-v21 / style.xml中设置了statusBarColor,一个罕见的事情是,当我开始调试应用程序时,Notifications栏会获得我设置的颜色,但是当应用程序完成启动时,它恢复原来的颜色。

这是截图

enter image description here

我想将通知栏的颜色设置为与导航栏相同。

感谢您的帮助!

2 个答案:

答案 0 :(得分:2)

我必须覆盖colorPrimaryDark样式才能达到我的目的。

<style name="MyTheme.Base" parent="Theme.AppCompat.Light.DarkActionBar">
    <item name="colorPrimary">#3b5998</item>
    <item name="colorPrimaryDark">#3b5998</item>
</style>

谢谢!

答案 1 :(得分:1)

可以使用values / Styles.xml文件中的以下xml将状态栏和操作栏设置为相同的颜色。

<?xml version="1.0" encoding="utf-8" ?>
<resources>
    <style name="myTheme" parent="android:Theme.Material.Light.DarkActionBar">
       <!-- Override the android colour scheme -->
       <item name="android:colorPrimary">@color/my_primary</item>
       <item name="android:statusBarColor">@color/my_primary</item>        
    </style>
</resources>

还要确保您拥有androidManifest.xml中包含的样式,并且您在values / Colours.xml文件中设置了自定义颜色。

<application android:label="Settings" android:icon="@drawable/Icon" android:theme="@style/myTheme"></application>