我正在开发一个使用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栏会获得我设置的颜色,但是当应用程序完成启动时,它恢复原来的颜色。
这是截图
我想将通知栏的颜色设置为与导航栏相同。
感谢您的帮助!
答案 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>