2016-12-29 25 views
1

我讀過不同的文章,它的工作,但不知何故它不適合我。 我加入的plistXamarin表單NavigationPage.BarTextColor不起作用

<key>UIViewControllerBasedStatusBarAppearance</key> 
    <false/> 

而且

var p = new FreshNavigationContainer(page); 
    p.BarTextColor = Color.Fuchsia; 
    p.BarBackgroundColor = Color.Aqua; 
    MainPage = p; 

FreshNavigationContainer從NavigationPage的。

我想有能力更改每個頁面上的狀態欄顏色。當頁面很暗時 - 我需要狀態欄才能亮起。反之亦然。

+0

嗨Vorotnyak!這個問題只發生在iOS?你能否確認它是否也在Android應用上發生? –

+0

我已經留下了一些基於你所期望的猜測的答案。如果你可以用更具體的問題來更新問題,那麼你可以根據需要調整我的答案。 – therealjohn

+0

你可以分享FreshNavigationContainer代碼嗎? – Atul

回答

2

我認爲你確實想要改變顏色有些混淆。

UIViewControllerBasedStatusBarAppearance通常與更改狀態欄文字顏色結合使用。例如,

UIApplication.SharedApplication.SetStatusBarStyle (UIStatusBarStyle.LightContent, false); 

這將使這樣的變化:

enter image description here

看起來你可能期待BarTextColor改變這一點。但是,這改變了上圖中的文字「我的費用」。

您必須使用iOS API(不是表單)更改iOS項​​目中的狀態欄文字顏色。樣品here。如果你想你的整個應用都在狀態欄中淺文本顏色,更新您的info.plist到:

<key>UIStatusBarStyle</key> 
<string>UIStatusBarStyleLightContent</string> 
<key>UIViewControllerBasedStatusBarAppearance</key> 
<false/> 

更新:

如果你想改變每個頁面的狀態欄的顏色,您需要將UIViewControllerBasedStatusBarAppearance設置爲true。然後,您需要在iOS項目中爲每個要更改狀態欄顏色的頁面使用PageRenderer。在渲染器中,您可以在ViewWillAppear方法中調用UIApplication.SharedApplication.StatusBarStyle = UIStatusBarStyle.LightContent;

請記住,您在款式上的選項有限,列出了here

+0

我想有能力分別更改每個頁面上的狀態欄顏色。我該怎麼做? 上面的代碼改變了整個應用的狀態欄顏色 –

+0

我已經更新了我的答案以解決這個問題 – therealjohn