【发布时间】:2019-08-31 19:19:52
【问题描述】:
我正在尝试获取小部件的高度,但它打印的值相同
I/flutter (19253): full height: 976.0 I/flutter (19253): safe height: 976.0
我猜第二个值应该更小,因为 Container 放置在状态栏下方。我做错了什么? 我需要高度,因为在这个容器中将是 Wrap 小部件(实际上是 ReorderableWrap https://pub.dartlang.org/packages/reorderables#-readme-tab-),有 36 张卡片,3 行 x 12 张卡片,卡片高度必须是其容器的 1/3。
我没有找到好的可重排网格。但无论如何,我的问题是为什么安全区域中的 Container 与填满整个屏幕的 Container 具有相同的高度?
import 'package:flutter/material.dart';
void main() {
runApp(_MyApp());
}
class _MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
debugShowCheckedModeBanner: false,
home: Scaffold(body: _Body()),
);
}
}
class _Body extends StatelessWidget {
@override
Widget build(BuildContext context) {
print('full height: ${MediaQuery.of(context).size.height}');
return Container(
constraints: BoxConstraints.expand(),
decoration: BoxDecoration(color: Colors.red),
child: SafeArea(
child: _SafeHeightWidget(),
),
);
}
}
class _SafeHeightWidget extends StatelessWidget {
@override
Widget build(BuildContext context) {
print('safe height: ${MediaQuery.of(context).size.height}');
return Container(
color: Colors.lightBlue,
);
}
}
【问题讨论】: