protected override void OnFocusChanged(bool gainFocus, FocusSearchDirection direction, Rect previouslyFocusedRect) { Window window = ((Activity)Context).Window; if (gainFocus) { _startingMode = window.Attributes.SoftInputMode; window.SetSoftInputMode(SoftInput.AdjustPan); } else window.SetSoftInputMode(_startingMode); base.OnFocusChanged(gainFocus, direction, previouslyFocusedRect); }
protected override void OnFocusChanged(bool gainFocus, FocusSearchDirection direction, ARect previouslyFocusedRect) { Window window = Context.GetActivity().Window; if (gainFocus) { _startingMode = window.Attributes.SoftInputMode; window.SetSoftInputMode(SoftInput.AdjustPan); } else { window.SetSoftInputMode(_startingMode); } base.OnFocusChanged(gainFocus, direction, previouslyFocusedRect); }
void SetStatusBarVisibility(SoftInput mode) { if (!Forms.IsLollipopOrNewer) { return; } if (mode == SoftInput.AdjustResize) { Window.DecorView.SystemUiVisibility = (StatusBarVisibility)(SystemUiFlags.Immersive); } else { Window.DecorView.SystemUiVisibility = (StatusBarVisibility)(SystemUiFlags.LayoutFullscreen | SystemUiFlags.LayoutStable); } _layout?.Invalidate(); }
void SetSoftInputMode() { SoftInput adjust = SoftInput.AdjustPan; if (Xamarin.Forms.Application.Current != null) { var elementValue = Xamarin.Forms.Application.Current.OnThisPlatform().GetWindowSoftInputModeAdjust(); switch (elementValue) { default: case WindowSoftInputModeAdjust.Pan: adjust = SoftInput.AdjustPan; break; case WindowSoftInputModeAdjust.Resize: adjust = SoftInput.AdjustResize; break; } } Window.SetSoftInputMode(adjust); }