void AddStatusBarUnderlay() { _statusBarUnderlay = new global::Android.Views.View(this); var layoutParameters = new ARelativeLayout.LayoutParams(ViewGroup.LayoutParams.MatchParent, GetStatusBarHeight()) { AlignWithParent = true }; layoutParameters.AddRule(LayoutRules.AlignTop); _statusBarUnderlay.LayoutParameters = layoutParameters; _layout.AddView(_statusBarUnderlay); if (Forms.IsLollipopOrNewer) { Window.AddFlags(WindowManagerFlags.DrawsSystemBarBackgrounds); Window.SetStatusBarColor(AColor.Transparent); int primaryColorDark = GetColorPrimaryDark(); if (primaryColorDark != 0) { int r = AColor.GetRedComponent(primaryColorDark); int g = AColor.GetGreenComponent(primaryColorDark); int b = AColor.GetBlueComponent(primaryColorDark); int a = AColor.GetAlphaComponent(primaryColorDark); SetStatusBarColor(AColor.Argb(a, r, g, b)); } } }
internal static int GetThemeAttrColor(this Context context, int attr, float alpha) { int color = GetThemeAttrColor(context, attr); int originalAlpha = AColor.GetAlphaComponent(color); // Return the color, multiplying the original alpha by the disabled value return((color & 0x00ffffff) | ((int)Math.Round(originalAlpha * alpha) << 24)); }
protected override void OnCreate(Bundle savedInstanceState) { base.OnCreate(savedInstanceState); AToolbar bar; if (ToolbarResource != 0) { bar = LayoutInflater.Inflate(ToolbarResource, null).JavaCast <AToolbar>(); if (bar == null) { throw new InvalidOperationException("ToolbarResource must be set to a Android.Support.V7.Widget.Toolbar"); } } else { bar = new AToolbar(this); } SetSupportActionBar(bar); Window.SetSoftInputMode(SoftInput.AdjustPan); _layout = new ARelativeLayout(BaseContext); SetContentView(_layout); Xamarin.Forms.Application.ClearCurrent(); _previousState = _currentState; _currentState = AndroidApplicationLifecycleState.OnCreate; OnStateChanged(); _statusBarUnderlay = new global::Android.Views.View(this); var layoutParameters = new ARelativeLayout.LayoutParams(ViewGroup.LayoutParams.MatchParent, GetStatusBarHeight()) { AlignWithParent = true }; layoutParameters.AddRule(LayoutRules.AlignTop); _statusBarUnderlay.LayoutParameters = layoutParameters; _layout.AddView(_statusBarUnderlay); if (Forms.IsLollipopOrNewer) { Window.DecorView.SystemUiVisibility = (StatusBarVisibility)(SystemUiFlags.LayoutFullscreen | SystemUiFlags.LayoutStable); Window.AddFlags(WindowManagerFlags.DrawsSystemBarBackgrounds); Window.SetStatusBarColor(AColor.Transparent); int primaryColorDark = GetColorPrimaryDark(); if (primaryColorDark != 0) { int r = AColor.GetRedComponent(primaryColorDark); int g = AColor.GetGreenComponent(primaryColorDark); int b = AColor.GetBlueComponent(primaryColorDark); int a = AColor.GetAlphaComponent(primaryColorDark); SetStatusBarColor(AColor.Argb(a, r, g, b)); } } }