Skip to content

Commit e00d87f

Browse files
[keyboard_textfield_test] wait until the keyboard becomes visible (flutter#92032)
1 parent 63c43a5 commit e00d87f

File tree

2 files changed

+12
-1
lines changed

2 files changed

+12
-1
lines changed

dev/integration_tests/ui/lib/keyboard_textfield.dart

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,14 +47,24 @@ class _MyHomePageState extends State<MyHomePage> {
4747
});
4848
}
4949

50+
@override
51+
void dispose() {
52+
_controller.dispose();
53+
super.dispose();
54+
}
55+
5056
@override
5157
Widget build(BuildContext context) {
58+
final String softKeyboardVisibility = MediaQuery.of(context).viewInsets.bottom > 100
59+
? 'keyboard visible'
60+
: 'keyboard not visible';
5261
return Scaffold(
5362
body: Column(
5463
children: <Widget>[
5564
Text('$offset',
5665
key: const ValueKey<String>(keys.kOffsetText),
5766
),
67+
Text(softKeyboardVisibility),
5868
Expanded(
5969
child: ListView(
6070
key: const ValueKey<String>(keys.kListView),

dev/integration_tests/ui/test_driver/keyboard_textfield_test.dart

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ void main() {
2424
final SerializableFinder listViewFinder = find.byValueKey(keys.kListView);
2525
final SerializableFinder textFieldFinder = find.byValueKey(keys.kDefaultTextField);
2626
final SerializableFinder offsetFinder = find.byValueKey(keys.kOffsetText);
27+
final SerializableFinder keyboardVisibilityIndicatorFinder = find.text('keyboard visible');
2728

2829
// Align TextField with bottom edge to ensure it would be covered when keyboard comes up.
2930
await driver.waitForAbsent(textFieldFinder);
@@ -38,7 +39,7 @@ void main() {
3839

3940
// Bring up keyboard
4041
await driver.tap(textFieldFinder);
41-
await Future<void>.delayed(const Duration(seconds: 1));
42+
await driver.waitFor(keyboardVisibilityIndicatorFinder);
4243

4344
// Ensure that TextField is visible again
4445
await driver.waitFor(textFieldFinder);

0 commit comments

Comments
 (0)