Android中SetDecorFitsSystemWindows恢复时状态栏变黑问题求助
Xamarin中全屏状态恢复异常的解决办法
以下是针对切换应用返回后状态栏变黑、视图下移问题的几种可行解决思路:
在
OnWindowFocusChanged方法中重新设置全屏属性并同步状态栏配置,窗口重新获得焦点时强制恢复状态:protected override void OnWindowFocusChanged(bool hasFocus) { base.OnWindowFocusChanged(hasFocus); if (hasFocus) { Window.SetDecorFitsSystemWindows(false); // 保持状态栏半透明,可根据需求调整颜色 Window.StatusBarColor = Android.Graphics.Color.Transparent; // 若需状态栏文字为深色,添加此行;浅色主题可注释 ViewCompat.SetWindowInsetsController(Window.DecorView, WindowInsetsControllerCompat.AppearanceLightStatusBars); } }优化
OnResume方法,除了设置SetDecorFitsSystemWindows,强制触发窗口布局重绘:protected override void OnResume() { base.OnResume(); Window.SetDecorFitsSystemWindows(false); // 强制窗口重新计算布局,修复视图偏移问题 Window.DecorView.RequestLayout(); // 重置状态栏颜色为透明 Window.StatusBarColor = Android.Graphics.Color.Transparent; }初始化时锁定系统UI稳定状态,避免切换应用后系统重置配置:
protected override void OnCreate(Bundle savedInstanceState) { base.OnCreate(savedInstanceState); Window.SetDecorFitsSystemWindows(false); Window.StatusBarColor = Android.Graphics.Color.Transparent; // 设置系统UI标记,维持全屏布局的稳定性 Window.DecorView.SystemUiVisibility = (StatusBarVisibility)(SystemUiFlags.LayoutStable | SystemUiFlags.LayoutFullscreen); }
内容的提问来源于stack exchange,提问作者Noobius
相关产品推荐
相关产品推荐

