Xamarin表单NavigationPage.BarTextColor不起作用

时间:2016-12-29 16:41:34

标签: xamarin xamarin.ios xamarin.forms

我在不同的文章中读到它的工作,但不知怎的,它对我来说并不适用。 我加入了plist

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

并且

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

FreshNavigationContainer派生自NavigationPage。

我希望能够更改每个页面上的状态栏颜色。当页面很暗时 - 我需要状态栏很亮。反之亦然。

1 个答案:

答案 0 :(得分:2)

我认为你究竟想要改变颜色的确存在一些混乱。

UIViewControllerBasedStatusBarAppearance通常与更改状态栏文字颜色结合使用。例如,

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

这会做出这样的改变:

enter image description here

看起来你可能期望BarTextColor改变这一点。但是,这会改变文本&#34; My Expenses&#34;在上图中。

您必须使用iOS API(不是表单)更改iOS项​​目中的状态栏文本颜色。示例here。如果您希望整个应用在状态栏中显示浅色文本,请将info.plist更新为:

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

更新

如果要更改每个页面的状态栏颜色,则需要将UIViewControllerBasedStatusBarAppearance设置为true。然后,您需要在iOS项目中为要更改状态栏颜色的每个页面使用PageRenderer。在渲染器中,您可以使用UIApplication.SharedApplication.StatusBarStyle = UIStatusBarStyle.LightContent;方法调用ViewWillAppear

请注意,您对该款式的选项有限,列于here