2017-04-22 69 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); 
}