Xamarin.Forms-更改StatusBar颜色

Emixam23

我正在搜索,但是无法从我的可移植代码中找到是否可以更改每个平台的StatusBar颜色?(用于Android, iOS & WinPhone 8.1

public App()
{
    // Change the StatusBar color
    MainPage = new MainPageUser();
}
斯特拉

几年后,我将重新解决此问题,因为即使我的答案被接受为正确答案,但我的答案仍然是错误的。我现在已经解决了。

我误读了要更改导航栏的问题,或者当时它在Android中的工作方式有所不同。

我认为至少这是一个更好的答案,应该更好地帮助更改Android和iOS中导航栏的颜色。

将此代码添加到您的Xamarin.Forms项目

public interface IStatusBarPlatformSpecific
{
  void SetStatusBarColor(Color color);
}

将该类添加到您的Android项目中

[assembly: Dependency(typeof(MyDemo.Droid.CustomRenderers.Statusbar))]
namespace MyDemo.Droid.CustomRenderers
{
    public class Statusbar : IStatusBarPlatformSpecific
    {
       public Statusbar()
       {
       }

       public void SetStatusBarColor(Color color)
       {
         // The SetStatusBarcolor is new since API 21
         if (Build.VERSION.SdkInt >= BuildVersionCodes.Lollipop)
        {
          var androidColor = color.AddLuminosity(-0.1).ToAndroid();
         //Just use the plugin
 CrossCurrentActivity.Current.Activity.Window.SetStatusBarColor(androidColor);
         }
         else
         {
          // Here you will just have to set your 
          // color in styles.xml file as shown below.
         }
       }
   }
}

将此CurrentActivityPlugin添加到您的项目中

现在,您可以像这样更改Forms项目中的颜色

var statusbar = DependencyService.Get<IStatusBarPlatformSpecific>();
statusbar.SetStatusBarColor(Color.Green);

注意上面的else语句。如果您使用的版本号低于21,则需要像这样将颜色硬编码到Android项目中的styles.xml中

<?xml version="1.0" encoding="utf-8" ?>
<resources>
   <style name="MainTheme.Base" parent="Theme.AppCompat.Light.DarkActionBar">  
      <item name="android:statusBarColor">#544054</item>  
   </style>
</resources>

对于iOS,其类似

将此添加到您的Info.plist(此处有更多文档

<key>UIStatusBarStyle</key>
<string>UIStatusBarStyleLightContent</string>
<key>UIViewControllerBasedStatusBarAppearance</key>
<false/>

并将此代码添加到StatusBar类的iOS版本中的SetStatusBarColor方法中

UIView statusBar = UIApplication.SharedApplication.ValueForKey(
new NSString("statusBar")) as UIView;

 if (statusBar != null && statusBar.RespondsToSelector(
 new  ObjCRuntime.Selector("setBackgroundColor:")))
 {
   // change to your desired color 
   statusBar.BackgroundColor = Color.FromHex("#7f6550").ToUIColor(); 
 }

我写了一篇更详细的博客文章,介绍了如果有人感兴趣的话如何从Xamarin.Forms设置状态栏的颜色它仅讨论Android和iOS,但应使您了解如何使用其他平台。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

将Xamarin.Forms.Color转换为平台特定的颜色

来自分类Dev

更改ActionBar颜色-Xamarin

来自分类Dev

Xamarin.Forms.DatePicker文本颜色

来自分类Dev

更改Xamarin Forms XAML按钮的isVisible属性

来自分类Dev

Xamarin Forms:在translateto上更改scrollview的大小

来自分类Dev

在Windows Phone 8.1的Xamarin Forms中更改Picker控件的默认文本颜色

来自分类Dev

如何使用自定义渲染器更改TableSection文本颜色-Xamarin.Forms C#

来自分类Dev

Xamarin.Forms:之后更改RelativeLayout约束

来自分类Dev

如何更改导航Titleview-Xamarin Forms的背景颜色?

来自分类Dev

如何在Xamarin.Forms xaml页面中更改图标颜色?

来自分类Dev

在Xamarin.Forms中更改TextColor

来自分类Dev

在运行时更改xamarin.forms颜色

来自分类Dev

Xamarin Forms-如何在没有导航页面的情况下更改状态栏的颜色

来自分类Dev

Xamarin.Forms条目更改光标颜色

来自分类Dev

单击ListView ViewCell时的Xamarin.Forms背景色更改为橙色,但未初始化为颜色

来自分类Dev

如何使用Xamarin.Forms中的主题更改TabbedPage栏的背景颜色?

来自分类Dev

更改父窗口Xamarin.Forms

来自分类Dev

Xamarin.Forms.Shell:如何管理StatusBar颜色

来自分类Dev

在Xamarin Forms控件上更改焦点/提示颜色

来自分类Dev

如何更改导航Titleview-Xamarin Forms的背景颜色?

来自分类Dev

Xamarin.Forms.DatePicker文本颜色

来自分类Dev

Xamarin.forms如何更改导航栏颜色

来自分类Dev

Xamarin Forms TabbedPage选项卡未选择的颜色

来自分类Dev

如何更改 Xamarin.Forms 中 MasterDetailPage Actiobar 的背景颜色,这将反映在所有平台上?

来自分类Dev

如何更改 Xamarin Forms 中 `ListView` 内 `TextCell` 的背景颜色?

来自分类Dev

Xamarin.Forms iOS 列表视图所选项目颜色

来自分类Dev

[Xamarin.Forms][Android] 在导航中更改返回和下一个颜色

来自分类Dev

如何在 IOS Xamarin.Forms 中更改浮动 TextField 默认占位符颜色

来自分类Dev

Xamarin Forms 操作栏溢出弹出颜色

Related 相关文章

  1. 1

    将Xamarin.Forms.Color转换为平台特定的颜色

  2. 2

    更改ActionBar颜色-Xamarin

  3. 3

    Xamarin.Forms.DatePicker文本颜色

  4. 4

    更改Xamarin Forms XAML按钮的isVisible属性

  5. 5

    Xamarin Forms:在translateto上更改scrollview的大小

  6. 6

    在Windows Phone 8.1的Xamarin Forms中更改Picker控件的默认文本颜色

  7. 7

    如何使用自定义渲染器更改TableSection文本颜色-Xamarin.Forms C#

  8. 8

    Xamarin.Forms:之后更改RelativeLayout约束

  9. 9

    如何更改导航Titleview-Xamarin Forms的背景颜色?

  10. 10

    如何在Xamarin.Forms xaml页面中更改图标颜色?

  11. 11

    在Xamarin.Forms中更改TextColor

  12. 12

    在运行时更改xamarin.forms颜色

  13. 13

    Xamarin Forms-如何在没有导航页面的情况下更改状态栏的颜色

  14. 14

    Xamarin.Forms条目更改光标颜色

  15. 15

    单击ListView ViewCell时的Xamarin.Forms背景色更改为橙色,但未初始化为颜色

  16. 16

    如何使用Xamarin.Forms中的主题更改TabbedPage栏的背景颜色?

  17. 17

    更改父窗口Xamarin.Forms

  18. 18

    Xamarin.Forms.Shell:如何管理StatusBar颜色

  19. 19

    在Xamarin Forms控件上更改焦点/提示颜色

  20. 20

    如何更改导航Titleview-Xamarin Forms的背景颜色?

  21. 21

    Xamarin.Forms.DatePicker文本颜色

  22. 22

    Xamarin.forms如何更改导航栏颜色

  23. 23

    Xamarin Forms TabbedPage选项卡未选择的颜色

  24. 24

    如何更改 Xamarin.Forms 中 MasterDetailPage Actiobar 的背景颜色,这将反映在所有平台上?

  25. 25

    如何更改 Xamarin Forms 中 `ListView` 内 `TextCell` 的背景颜色?

  26. 26

    Xamarin.Forms iOS 列表视图所选项目颜色

  27. 27

    [Xamarin.Forms][Android] 在导航中更改返回和下一个颜色

  28. 28

    如何在 IOS Xamarin.Forms 中更改浮动 TextField 默认占位符颜色

  29. 29

    Xamarin Forms 操作栏溢出弹出颜色

热门标签

归档