2017-04-22 66 views
0

我想改变Xamarin Forms Portable Class Library上的顶部/通知栏的颜色。改变Android Top Bar的颜色

MainPage.SetValue(NavigationPage.BarTextColorProperty, Color.FromHex(#424242); 

来源:Xamarin.Forms - Change StatusBar Color

我一直在使用

public App() 
{ 
    MainPage = new NavigationPage(new Page1()) 
    { 
     BarBackgroundColor = Color.FromHex("#424242"), 
     BarTextColor = Color.White, 
    }; 
} 

来源也试过:https://theconfuzedsourcecode.wordpress.com/2016/02/12/setting-the-navigationbar-colors-in-xamarin-forms/

一审/代码的应用程序启动,但是我一直在使用下面的尝试卡在加载屏幕上。我也是使用Xamarin的新手,因此不确定在哪里查找错误日志,因为控制台中没有显示任何错误日志。

在第二个实例/代码中,应用程序在应用程序的顶部/通知栏下方区域上颜色,但不在通知栏上。

希望有人能指导我正确的方向。

感谢

+0

你检查我的答案?任何问题? –

+0

嘿,是的,我尝试了它,并在Nexus模拟器上启动,系统栏仍然默认启动(蓝色)。我重建/清理解决方案,不知道我做错了什么。欣赏帮助btw :) – SakshamInABox

+0

哪个android版本是你的模拟器的操作系统? –

回答

0

你的第一种方法是试图改变文字颜色(可以这么说“前景色”)通知栏和你的第二个方法是试图改变导航栏的背景颜色,既然你说:

在第二个实例/代码中,应用程序在应用程序的顶部/通知栏下面区域着色,但不是通知栏本身。

我想你想改变系统的状态栏的背景颜色,而不是应用程序的导航栏。然后你只能在你的android项目中更改它,而不是在PCL中。

例如,打开你的Android项目的MainActivity和修改OnCreate方法是这样的:

protected override void OnCreate(Bundle bundle) 
{ 
    TabLayoutResource = Resource.Layout.Tabbar; 
    ToolbarResource = Resource.Layout.Toolbar; 

    base.OnCreate(bundle); 

    global::Xamarin.Forms.Forms.Init(this, bundle); 
    LoadApplication(new App()); 

    Window.ClearFlags(WindowManagerFlags.TranslucentStatus); 
    Window.AddFlags(WindowManagerFlags.DrawsSystemBarBackgrounds); 
    Window.SetStatusBarColor(Color.LightPink); 
}