我有一个MasterDetail页面,Detail是Naviagtion页面,Master包含Listview。我正在使用
更改标题栏背景颜色和文本的颜色((NavigationPage)Detail).BarBackgroundColor = Color.Navy;
((NavigationPage)Detail).BarTextColor = Color.White;
这会将“主”和“细节”部分的载体栏文本更改为白色,但仅更改“细节”部分的载体栏背景,“主”仍为白色/透明,因此文本不再可见。这是一个错误吗?我希望条形变量的工作方式相同,只能在导航页面上工作,因为那是他们应用的页面。
注意 - 我没有将StatusBarStyle设置为LightContent,内容页面上的状态栏在白色背景上显示为黑色文本。
*编辑 - 我希望它看起来像这样 - CarrierBarText颜色仅在导航页面上发生变化:
答案 0 :(得分:1)
我认为这是预期的行为而不是错误。 iOS状态栏是半透明的,但“详细信息”页面上的导航栏会延伸到窗口顶部,因此状态栏看起来像是一种颜色。
主页面也会延伸到窗口的顶部,因此当它被推入视图时,顶部的20px会显示在状态栏下,在这种情况下,它只是页面的背景。您可以将页面背景更改为Navy以匹配导航栏,使其看起来更加一致。
答案 1 :(得分:0)
在Xamarin.Forms中更改iOS状态栏颜色的唯一方法是设置BarTextColor
的{{1}}。 NavigationPage
页面必须是Detail
,因此他们可以设置NavigationPage
属性。
由于BarTextColor
页面不是Master
,因此它没有NavigationPage
属性,也无法更改iOS状态栏颜色。
我的建议是将BarTextColor
页面的背景颜色更改为深色(如海军蓝),以便iOS状态栏中的白色文字仍然可见。
詹姆斯·蒙特马戈(James Montemago)做了一篇很棒的博客文章,讨论了如何设置iOS状态栏颜色: http://motzcod.es/post/110755300272/ios-tip-change-status-bar-icon-text-colors
如果您使用的是Xamarin.forms,还必须在NavigationPage上设置BarTextColor = Color.White!此外,您应该进入info.plist并将“查看基于控制器的状态栏外观”设置为否