我正在通过更改xamarin表单中样式的颜色来更改状态栏颜色
<item name="colorPrimaryDark">#fc3884</item>//android
UIBarButtonItem.Appearance.TintColor = UIColor.FromRGB(232, 62,140);//ios
UITabBar.Appearance.BarTintColor=UIColor.FromRGB(232, 62, 140);
但是在我的项目中,我正在使用第三方API,导航到新页面(第三方)时也必须更改状态栏颜色。如何实现此目的?
答案 0 :(得分:1)
对于android,您可以使用依赖项服务来更改状态栏的颜色。您可以在android项目中设置以下函数,然后从.net标准项目中调用它。
public bool ChangeStatusbarColor(Color color)
{
bool colorChanged = false;
try
{
#pragma warning disable CS0618 // Type or member is obsolete
var context = Forms.Context as FormsAppCompatActivity;
context.SetStatusBarColor(color.ToAndroid());
#pragma warning restore CS0618 // Type or member is obsolete
colorChanged = true;
}
catch { }
return colorChanged;
}
对于IOS,您可以使用以下功能执行类似的操作:
UIView statusBar = UIApplication.SharedApplication.ValueForKey(new NSString("statusBar")) as UIView;
if (statusBar.RespondsToSelector(new ObjCRuntime.Selector("setBackgroundColor:")))
{
statusBar.BackgroundColor = color.ToUIColor();
}