【发布时间】:2020-02-14 20:58:21
【问题描述】:
我想更改某些视图的状态栏颜色。
我找到了这个解决方案https://github.com/yuv4ik/XFDynamicStatusBarAppearance
但它只适用于 NavigationPage。
我不需要从我的应用导航页面...
public App()
{
InitializeComponent();
MainPage = new MainPage();
}
这是我的尝试...
var statusBarStyleManager = DependencyService.Get<IStatusBarStyleManager>();
MainCarousel.PositionChanged += (sender, e) =>
{
switch (e.CurrentPosition)
{
case 1:
Device.BeginInvokeOnMainThread(() =>
{
Xamarin.Forms.Application.Current.MainPage.SetValue(Xamarin.Forms.NavigationPage.BarBackgroundColorProperty, Color.DarkCyan);
//((Xamarin.Forms.NavigationPage)Xamarin.Forms.Application.Current.MainPage).BarBackgroundColor = Color.DarkCyan;
statusBarStyleManager.SetDarkTheme();
});
break;
case 0:
case 2:
Device.BeginInvokeOnMainThread(() =>
{
Xamarin.Forms.Application.Current.MainPage.SetValue(Xamarin.Forms.NavigationPage.BarBackgroundColorProperty, Color.LightGreen);
statusBarStyleManager.SetLightTheme();
});
break;
default:
break;
}
};
如何更改状态栏颜色?
【问题讨论】:
-
我不认为你可以用纯 Xamarin.Forms 做到这一点。正如@Cherry Bu - MSFT 所说,您将不得不使用 DependencyService,并在 Android 和 iOS 中分别实现它。可以在此处找到 iOS 解决方案:forums.xamarin.com/discussion/89840/…。如果您在实施时遇到问题,请告诉我们:)
-
谢谢@Julipan,这个链接很有帮助!!
标签: c# xamarin xamarin.forms xamarin.android xamarin.ios