【问题标题】:Why doesn't navigationbar change colour in Xamarin.Forms on some devices?为什么导航栏在某些设备上的 Xamarin.Forms 中不改变颜色?
【发布时间】:2017-03-23 10:49:26
【问题描述】:

我正在构建一个 Xamarin Forms 应用程序,目前在 Android 上。

我正在尝试动态更改应用顶部导航栏的颜色。我使用锁定到 Android 4.1 API 17 的旧手机成功地管理了这一点,但我尝试过的所有其他手机都无法正常工作。我试过了:

三星 SM-G388F - Android 5.1 API 22

谷歌像素 - Android 7.1 API 25

Screenshot - Newer phones - does not work - simply inherits page background colour

Screenshot - Older phone - works perfectly

最初我使用 App.xaml 中定义的 DynamicResource 来更改 BarBackgroundColour,具体取决于您使用的环境 - Live/Test。其他两个属性 BackgroundColor 和 BarTextColor 工作正常。

 <Color x:Key="navBarColour">#F4721C</Color>
  <Style TargetType="NavigationPage">
            <Setter Property="BackgroundColor" Value="{StaticResource pageBackground}"/>
            <Setter Property="BarBackgroundColor" x:Key="navBar" Value="{DynamicResource navBarColour}"/>
            <Setter Property="BarTextColor" Value="{StaticResource textColor}"/>

        </Style>

在 App.xaml.cs 中设置应用加载

    if (Settings.Environment.ToLower() == "live")
        {
            Application.Current.Resources["navBarColour"] = Application.Current.Resources["anglianLightBlue"];
        }
        else
        {
            Application.Current.Resources["navBarColour"] = Application.Current.Resources["red"];
        }

用户还可以在此处的“设置”页面上切换环境:

                App.Current.Resources["navBarColour"] = App.Current.Resources["red"];

我尝试将其更改为 StaticResource,并尝试直接在我的 xaml 中将其设置为只是 Color.Black,但它仍然无法正常工作 - 我似乎无法找到在任何地方更改它的方法。

我在 Google 上找不到任何关于此的信息,也找不到任何有类似问题的人。 有没有其他人经历过这个,如果有,他们是如何解决这个问题的?

【问题讨论】:

    标签: xamarin xamarin.android xamarin.forms navigationbar master-detail


    【解决方案1】:

    我不知道为什么这不起作用,但我确实找到了解决方法。 NavigationBar 继承了页面背景颜色,因此通过将页面背景更改为您希望栏的颜色,然后在其余内容周围粘贴一个容器(滚动视图/内容视图)并为页面容器的背景着色背景颜色,这会产生所需的效果。 我仍然想知道为什么这不起作用,但现在这是一个合适的解决方法。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-11-14
      • 2021-07-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-11-22
      • 2016-07-03
      • 2017-07-28
      相关资源
      最近更新 更多