mirror of
https://github.com/flutter/flutter.git
synced 2025-06-03 00:51:18 +00:00

Fixes [Optimize official `Overlay` sample to avoid overflowing.](https://github.com/flutter/flutter/issues/155860) When checking https://main-api.flutter.dev/flutter/widgets/Overlay-class.html on a laptop screen it overflows as the layout uses Row instead of more robust widget for spacing `Wrap` Quick Friday night fix. :) | Before | After | | --------------- | --------------- | | <img src="https://github.com/user-attachments/assets/eea6f1d9-e860-4ebd-8d16-2d8f4141e1ec" /> | <img src="https://github.com/user-attachments/assets/9f8426ba-d541-44a6-8ea6-2e34636b7e82" /> |
57 lines
1.9 KiB
Dart
57 lines
1.9 KiB
Dart
// Copyright 2014 The Flutter Authors. All rights reserved.
|
|
// Use of this source code is governed by a BSD-style license that can be
|
|
// found in the LICENSE file.
|
|
|
|
import 'package:flutter/material.dart';
|
|
import 'package:flutter_api_samples/widgets/overlay/overlay.0.dart' as example;
|
|
import 'package:flutter_test/flutter_test.dart';
|
|
|
|
void main() {
|
|
testWidgets('Can use Overlay to highlight NavigationBar destination', (WidgetTester tester) async {
|
|
const String explorePage = 'Explore page';
|
|
const String commutePage = 'Commute page';
|
|
const String savedPage = 'Saved page';
|
|
|
|
await tester.pumpWidget(
|
|
const example.OverlayApp(),
|
|
);
|
|
|
|
expect(find.text(explorePage), findsNothing);
|
|
expect(find.text(commutePage), findsNothing);
|
|
expect(find.text(savedPage), findsNothing);
|
|
|
|
await tester.tap(find.widgetWithText(ElevatedButton, 'Explore'));
|
|
await tester.pumpAndSettle();
|
|
expect(find.text(explorePage), findsOneWidget);
|
|
|
|
await tester.tap(find.widgetWithText(ElevatedButton, 'Commute'));
|
|
await tester.pumpAndSettle();
|
|
expect(find.text(commutePage), findsOneWidget);
|
|
|
|
await tester.tap(find.widgetWithText(ElevatedButton, 'Saved'));
|
|
await tester.pumpAndSettle();
|
|
expect(find.text(savedPage), findsOneWidget);
|
|
|
|
await tester.tap(find.widgetWithText(ElevatedButton, 'Remove Overlay'));
|
|
await tester.pumpAndSettle();
|
|
expect(find.text(explorePage), findsNothing);
|
|
expect(find.text(commutePage), findsNothing);
|
|
expect(find.text(savedPage), findsNothing);
|
|
});
|
|
|
|
testWidgets('Narrow layout does not overflow', (WidgetTester tester) async {
|
|
// Set a narrow screen size.
|
|
tester.view
|
|
..physicalSize = const Size(320, 480)
|
|
..devicePixelRatio = 1;
|
|
addTearDown(tester.view.reset);
|
|
|
|
await tester.pumpWidget(
|
|
const example.OverlayApp(),
|
|
);
|
|
|
|
// Verify that no overflow errors occur.
|
|
expect(tester.takeException(), isNull);
|
|
});
|
|
}
|