[keyboard_textfield_test] wait until the keyboard becomes visible (#92032)

This commit is contained in:
LongCatIsLooong 2021-10-19 15:03:04 -07:00 committed by GitHub
parent 63c43a5edd
commit e00d87ffcc
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 12 additions and 1 deletions

View File

@ -47,14 +47,24 @@ class _MyHomePageState extends State<MyHomePage> {
});
}
@override
void dispose() {
_controller.dispose();
super.dispose();
}
@override
Widget build(BuildContext context) {
final String softKeyboardVisibility = MediaQuery.of(context).viewInsets.bottom > 100
? 'keyboard visible'
: 'keyboard not visible';
return Scaffold(
body: Column(
children: <Widget>[
Text('$offset',
key: const ValueKey<String>(keys.kOffsetText),
),
Text(softKeyboardVisibility),
Expanded(
child: ListView(
key: const ValueKey<String>(keys.kListView),

View File

@ -24,6 +24,7 @@ void main() {
final SerializableFinder listViewFinder = find.byValueKey(keys.kListView);
final SerializableFinder textFieldFinder = find.byValueKey(keys.kDefaultTextField);
final SerializableFinder offsetFinder = find.byValueKey(keys.kOffsetText);
final SerializableFinder keyboardVisibilityIndicatorFinder = find.text('keyboard visible');
// Align TextField with bottom edge to ensure it would be covered when keyboard comes up.
await driver.waitForAbsent(textFieldFinder);
@ -38,7 +39,7 @@ void main() {
// Bring up keyboard
await driver.tap(textFieldFinder);
await Future<void>.delayed(const Duration(seconds: 1));
await driver.waitFor(keyboardVisibilityIndicatorFinder);
// Ensure that TextField is visible again
await driver.waitFor(textFieldFinder);