You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.13 20:22:11