为什么 Scalffold 在 android 中没有填满屏幕底部?
why Scalffold is not filling bottom of the screen in android?
我是 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,
);
}
}
您应该考虑使用 SafeArea Widget,它用于覆盖或不覆盖屏幕的顶部和底部:
https://api.flutter.dev/flutter/widgets/SafeArea-class.html
下面是你关心的:
SafeArea(
child: Scaffold(),
bottom: false/true,
)
它知道当前上下文 MediaQuery 和 View Padding
我认为这是因为底部区域是 Android 导航栏的一部分,因此您需要明确更改它的背景:
void main() {
SystemChrome.setSystemUIOverlayStyle(
const SystemUiOverlayStyle(systemNavigationBarColor: Colors.green),
);
runApp(
MaterialApp(
home: MyHomePage(),
),
);
}
有关详细信息,请查看 documentation。
我是 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,
);
}
}
您应该考虑使用 SafeArea Widget,它用于覆盖或不覆盖屏幕的顶部和底部: https://api.flutter.dev/flutter/widgets/SafeArea-class.html
下面是你关心的:
SafeArea(
child: Scaffold(),
bottom: false/true,
)
它知道当前上下文 MediaQuery 和 View Padding
我认为这是因为底部区域是 Android 导航栏的一部分,因此您需要明确更改它的背景:
void main() {
SystemChrome.setSystemUIOverlayStyle(
const SystemUiOverlayStyle(systemNavigationBarColor: Colors.green),
);
runApp(
MaterialApp(
home: MyHomePage(),
),
);
}
有关详细信息,请查看 documentation。