改变Android顶栏的颜色

时间:2017-04-22 10:46:30

标签: c# android xaml xamarin xamarin.forms

我正在尝试更改Xamarin Forms可移植类库中顶部/通知栏的颜色。我尝试过使用以下内容:

 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的新手,因此不确定在哪里可以找到错误日志,因为控制台中没有显示错误日志。

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

希望有人能引导我朝着正确的方向前进。

由于

1 个答案:

答案 0 :(得分:1)

您的第一种方法是尝试更改通知栏的文本颜色(例如说“前景色”),而您的第二种方法是尝试更改导航栏的背景颜色,并且因为您说:

  

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

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

例如,打开你的MainActivity android项目并修改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);
}