【问题标题】:how can i change status bar color(primary dark and primary) in android and ios in Xamarin forms?如何在 Xamarin 表单中更改 android 和 ios 中的状态栏颜色(原色和原色)?
【发布时间】:2019-07-20 17:20:45
【问题描述】:

我正在通过更改 xamarin 表单中样式的颜色来更改状态栏颜色

   <item name="colorPrimaryDark">#fc3884</item>//android
   UIBarButtonItem.Appearance.TintColor = UIColor.FromRGB(232, 62,140);//ios
        UITabBar.Appearance.BarTintColor=UIColor.FromRGB(232, 62, 140); 

但在我的项目中,我使用的是第 3 方 API,当我导航到新页面(第 3 方)时,我必须更改状态栏颜色。我该如何实现呢?

【问题讨论】:

    标签: xamarin.forms


    【解决方案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();
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-12-31
      • 2021-06-26
      • 2016-01-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-09-08
      相关资源
      最近更新 更多