【问题标题】:Xamarin.Forms: Se tStatus Bar Color on androidXamarin.Forms:在 android 上设置状态栏颜色
【发布时间】:2018-10-23 16:46:42
【问题描述】:

我正在尝试在我的 xamarin 表单项目的 Android 版本上设置状态栏颜色。

使用:

     Window.SetStatusBarColor(Resources.GetColor(Resource.Color.colorPrimary));

我已经达到了预期的颜色,但指令似乎已被弃用。

为避免将来崩溃,我该如何执行指令?

提前致谢

【问题讨论】:

  • 你做得对,不推荐使用的方法是Resources.GetColor,你可以这样做Window.SetStatusBarColor(Resource.Color.colorPrimary);
  • 未知标识符资源

标签: android xamarin.forms


【解决方案1】:

您可以使用 API 级别 21 中引入的新 window.setStatusBarColor 方法更改状态栏的颜色。

更改状态栏的颜色还需要在 Window 上设置两个额外的标志;您需要添加 FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS 标志并清除 FLAG_TRANSLUCENT_STATUS 标志。

Window window = activity.getWindow();

        // clear FLAG_TRANSLUCENT_STATUS flag:
        window.clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);

        // add FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS flag to the window
        window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);

        // finally change the color
        window.setStatusBarColor(ContextCompat.getColor(activity, R.color.my_statusbar_color));

这是您可以查看的同一线程: How to change the status bar color in android

【讨论】:

    【解决方案2】:

    您可以通过在 Styles.xml 文件中应用颜色来设置状态栏的颜色,该文件位于 Resources -> values 文件夹下。

    <!-- colorPrimaryDark is used for the status bar -->
    <item name="colorPrimaryDark">#1eb6ed</item>
    

    放置它,它应该可以工作。 希望这对您有所帮助。

    【讨论】:

      猜你喜欢
      • 2016-03-06
      • 2016-10-25
      • 2016-09-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多