为什么Scalffold在Android中没有填充屏幕底部?

5w9g7ksd  于 2022-11-27  发布在  Android
关注(0)|答案(2)|浏览(188)

我是Flutter的新手。我的屏幕上没有其他东西-只有一个支架。我不知道为什么,它没有填满整个屏幕。

import 'package:flutter/material.dart';

void main() {
  runApp(
    MaterialApp(
      home: MyHomePage(),
    ),
  );
}

class MyHomePage extends StatefulWidget {

  @override
  State<MyHomePage> createState() => _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {
  void _incrementCounter() {
    setState(() {});
  }

  @override
  Widget build(BuildContext context) {
    
    return Scaffold(
          backgroundColor: Colors.green,

          
    );
  }
}
qjp7pelc

qjp7pelc1#

我认为这是因为底部区域是Android导航栏的一部分,因此您需要显式地更改它的背景:

void main() {
  SystemChrome.setSystemUIOverlayStyle(
    const SystemUiOverlayStyle(systemNavigationBarColor: Colors.green),
  );

  runApp(
    MaterialApp(
      home: MyHomePage(),
    ),
  );
}

有关详细信息,请查看documentation .

f2uvfpb9

f2uvfpb92#

您应该考虑使用SafeArea Widget,它用于覆盖屏幕的顶部和底部:https://api.flutter.dev/flutter/widgets/SafeArea-class.html
最下面是你所关心的:

SafeArea(
  child: Scaffold(),
  bottom: false/true,
)

它知道当前上下文MediaQuery和视图填充

相关问题