当(任务管理器)/应用切换器上的应用

时间:2019-03-01 06:26:02

标签: xamarin.forms xamarin.ios

切换应用程序时,我在iOS上遇到问题。状态栏颜色更改为default,有人知道如何解决此问题吗?似乎是iOS本身的错误。

注意:在这种情况下,我没有使用Navigation Bar

到目前为止,每当我要更改状态栏颜色时,我仅在iOS中提供此服务。

public void ChangeStatusBarEffects(Color StatusBarColor, bool IsDarkTheme = false)
{
    if (IsDarkTheme)
    {
        Device.BeginInvokeOnMainThread(() =>
        {
            UIApplication.SharedApplication.SetStatusBarStyle(UIStatusBarStyle.LightContent, false);
            UIView statusBar = UIApplication.SharedApplication.ValueForKey(new NSString("statusBar")) as UIView;
            if (statusBar.RespondsToSelector(new ObjCRuntime.Selector("setBackgroundColor:")))
            {
               statusBar.BackgroundColor = StatusBarColor.ToUIColor();
            }
        });
    }
    else
    {
        Device.BeginInvokeOnMainThread(() =>
        {
            UIApplication.SharedApplication.SetStatusBarStyle(UIStatusBarStyle.BlackOpaque, false);
            UIView statusBar = UIApplication.SharedApplication.ValueForKey(new NSString("statusBar")) as UIView;
            if (statusBar.RespondsToSelector(new ObjCRuntime.Selector("setBackgroundColor:")))
            {
                statusBar.BackgroundColor = StatusBarColor.ToUIColor();
            }
        });
    }
}

A screenshot showing the iOS app switcher with the OPs app having a white navigation bar.

1 个答案:

答案 0 :(得分:0)

我已经找到解决方法。

我添加了一个视图,该视图具有当应用程序是任务管理器视图时要显示的颜色。该视图位于主视图和安全区域之间。

该视图将在系统栏下方,但是当应用转到任务管理器(或应用切换屏幕)时,该视图将变为可见。

可能有更好的解决方法,但这是我使它起作用的唯一方法!