以下是Xamarin中用于customNavigation的XAML代码。未设置条形颜色,但设置了条形文本颜色。而且这仅发生在Android中,iOS可以正常工作。
<NavigationPage xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
x:Class="DSXMobile.Views.CustomNavigationView"
BarBackgroundColor="Red"
BarTextColor="Black">
</NavigationPage>
有人可以帮助我吗?
答案 0 :(得分:1)
这是一个已知问题,
”如果您使用的是FormsAppCompatActivity
如果您使用的是FormsAppCompatActivity,则这是XF中的错误。
解决方法是在用于FormsAppCompatActivity.ToolbarResource的应用程序的布局文件中设置android:background。
将此值设置为任何值,例如:android:background =“#00000000”
然后XF稍后将使用您的XAML样式中的任何颜色对其进行样式设置。
真正愚蠢的错误,希望它能尽快得到解决。”
另一个参考: https://forums.xamarin.com/discussion/37657/how-to-change-the-nav-bar-background-color-on-android
两个烦人的自定义渲染器解决方案: https://forums.xamarin.com/discussion/17811/tabbedpage-tabbar-background-color-tint
https://forums.xamarin.com/discussion/59828/change-barbackgroundcolor-dynamically
答案 1 :(得分:1)
就像其他答案一样,它是一个错误,但是我不知道是否应该将其称为错误,因为android正在做它所做的事情,现在您可以在styles.xml中选择分配给其活动的主题要做的就是在您的styles.xml中进行相同的更改,就像这样:
<?xml version="1.0" encoding="utf-8" ?>
<resources>
<style name="MyTheme" parent="MyTheme.Base">
</style>
<style name="DrawerArrowStyle"
parent="@style/Widget.AppCompat.DrawerArrowToggle">
<item name="spinBars">true</item>
<item name="color">#FFFFFF</item>
</style>
<style name="MyTheme.Base"
parent="Theme.AppCompat.Light.DarkActionBar">
<item name="windowNoTitle">true</item>
<item name="windowActionBar">false</item>
<item name="colorPrimary">#003399</item>
<item name="colorPrimaryDark">#003399</item>
<item name="colorControlHighlight">#003399</item>
<item name="colorAccent">#012348</item>
<item name="drawerArrowStyle">@style/DrawerArrowStyle</item>
</style>
</resources>
在这里更改颜色也会在那里更改颜色,例如ColorPrimary是您的工具栏颜色