@override
Widget build(BuildContext context) {
final bottomPadding = MediaQuery.of(context).padding.bottom; // From here you will get only SafeArea padding.
return Scaffold(
body: PageView(
children: const [
// But in build() method of each of these screens you will get
// SafeArea padding with bottomNavigationBar height
// just by calling MediaQuery.of(context).padding.bottom;
FirstScreen(),
SecondScreen(),
ThirdScreen(),
FourthScreen(),
],
),
bottomNavigationBar: MyBottomNavigationBar(),
);
}
5条答案
按热度按时间omqzjyyz1#
我试过了,对于Android,我使用
kBottomNavigationBarHeight
,对于iOS,我认为高度是90 pixel
..所以我在常量文件中声明了高度,如double btmNavigationBarHeight = Platform.isAndroid ? kBottomNavigationBarHeight : 90;
ru9i0ody2#
根据dosc:https://api.flutter.dev/flutter/material/NavigationBar/height.html
If null, NavigationBarThemeData.height is used. If that is also null, the default is 80
k2arahey3#
这将创建一个仅为BottomNavigationBar小部件提供足够空间的Scaffold。
kBottomNavigationBarHeight是一个常量,可以在常量.dart文件中找到。
s71maibg4#
要获取小部件的大小,可以使用
key
字段9q78igpj5#
如果你想知道bottomNavigationBar在主Scaffold的一个子屏幕中的高度,你可以使用MediaQuery:
除了SafeArea之外,MediaQuery的底部填充还考虑了bottomNavigationBar的高度。
更详细: