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

Flutter中Android模拟器全屏模式顶部出现黑条问题求助

解决Android模拟器全屏模式顶部黑条问题

以下是几个可行的解决方案,按优先级尝试:

1. 调整SystemChrome调用顺序并初始化Flutter绑定

当前代码中SystemChrome设置在runApp之后执行,可能导致系统UI配置未及时生效。需先初始化Flutter绑定,再设置系统UI模式,最后启动应用:

import 'package:flutter/material.dart';
import 'package:flutter/services.dart';

void main() {
  WidgetsFlutterBinding.ensureInitialized(); // 必须先初始化绑定
  // 隐藏所有系统UI,交互时暂时显示后自动隐藏
  SystemChrome.setEnabledSystemUIMode(SystemUiMode.immersiveSticky);
  // 强制竖屏(匹配模拟器配置)
  SystemChrome.setPreferredOrientations([DeviceOrientation.portraitUp])
      .then((_) {
    runApp(const MyApp());
  });
}

// 其余代码保持不变

2. 让应用自动填充屏幕空间

移除Root组件中手动设置的height(Container默认会占满父组件空间),同时在MaterialApp中配置适配参数:

class _MyAppState extends State<MyApp> {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      useInheritedMediaQuery: true,
      theme: ThemeData(
        visualDensity: VisualDensity.adaptivePlatformDensity,
      ),
      home: const Root(),
    );
  }
}

class Root extends StatelessWidget {
  const Root({Key? key}) : super(key: key);

  @override
  Widget build(BuildContext context) {
    return Container(
      color: Colors.red,
      // 移除手动height设置,让容器自动填充可用空间
    );
  }
}

3. 检查模拟器配置

  • 确认模拟器"显示"设置中,刘海/打孔区域设置为"默认"或"显示"
  • 关闭"快速启动"(Quick boot)选项,重启模拟器后再测试

这些操作的核心是确保系统UI配置在应用启动前生效,并且应用正确扩展到屏幕的全部可用区域。

内容的提问来源于stack exchange,提问作者Noah

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 05:18:20