【发布时间】:2021-05-04 14:09:46
【问题描述】:
使用 xamarin 表单,我们正在添加在暗光模式之间切换的功能。一切都很好,但是无论我做什么,android 应用程序的第一页状态栏颜色都不会改变。
我猜在 android 项目中我必须在 OnCreate 之前调用 SetTheme(...)。
或者我在这里遗漏了什么?
问题 如何根据主题设置状态栏颜色?一旦加载了android,下面的代码就不会改变
public void SetStatusBarColor(System.Drawing.Color color, bool darkStatusBarTint)
{
var activity = Platform.CurrentActivity;
var window = activity.Window;
window?.AddFlags(WindowManagerFlags.DrawsSystemBarBackgrounds);
window?.ClearFlags(WindowManagerFlags.TranslucentStatus);
window?.SetStatusBarColor(color.ToPlatformColor());
var flag = (StatusBarVisibility)SystemUiFlags.LightStatusBar;
if (window != null)
{
window.DecorView.SystemUiVisibility = darkStatusBarTint ? flag : 0;
}
}
建议? 谢谢
【问题讨论】:
-
通常Android上的状态栏颜色是根据
colorPrimaryDark设置的,也许可以尝试更改它,也可以在xamarin表单的NavigationPage BarBackgroundColor属性上设置状态栏颜色
标签: xamarin.forms xamarin.android