由于 Flutter 的测试环境不包含像模拟器这样的系统状态栏,所以我想在顶部使用MediaQuery
.
这是我的测试代码:
void main() {
testWidgets('MediaQuery padding test', (WidgetTester tester) async {
const double statusBarHeight = 24.0;
await tester.pumpWidget(
MaterialApp(
home: MediaQuery(
data: const MediaQueryData(
viewInsets: EdgeInsets.only(top: statusBarHeight),
),
child: Scaffold(
appBar: AppBar(
title: const Text('PopupMenu Test'),
),
),
),
),
);
expect(find.byType(AppBar), findsOneWidget);
expect(tester.getTopLeft(find.byType(AppBar)).dy, windowPaddingTop);
});
}
由于我24.0
使用 添加了顶部填充MediaQueryData.viewInsets
,我预计 AppBar 左上 y 轴为24.0
,但结果为零。
我也尝试过使用viewPadding
而不是进行测试viewInsets
,但它产生了相同的结果。
我想知道我的测试中没有应用顶部填充的原因,以及如何解决这个问题。我将不胜感激任何帮助。谢谢。