Метод ensureVisible
Метод ensureVisible класса WidgetTester
прокручивает предка, пока виджет не окажется в видимой области.
Дальше по этому виджету можно нажать или прочитать текст.
Синтаксис
await tester.ensureVisible(finder)
Параметры
| Параметр | Описание |
|---|---|
finder | Виджет вне экрана. |
Пример
Давайте прокрутить к нижнему Text:
import 'package:flutter/material.dart';
import 'package:flutter_test/flutter_test.dart';
void main()
{
testWidgets('ev', (WidgetTester t) async
{
await t.pumpWidget(
MaterialApp(
home: Scaffold(
body: ListView(
children: [
const SizedBox(height: 800),
const Text('abcde'),
],
),
),
),
);
await t.ensureVisible(find.text('abcde'));
expect(find.text('abcde'), findsOneWidget);
});
}
ensureVisible покажет abcde.
Пример
Давайте ensureVisible перед tap:
import 'package:flutter/material.dart';
import 'package:flutter_test/flutter_test.dart';
void main()
{
testWidgets('ev2', (WidgetTester t) async
{
await t.pumpWidget(
MaterialApp(
home: Scaffold(
body: ListView(
children: [
const SizedBox(height: 900),
ElevatedButton(
onPressed: () {},
child: const Text('12345'),
),
],
),
),
),
);
await t.ensureVisible(find.text('12345'));
await t.tap(find.text('12345'));
expect(find.text('12345'), findsOneWidget);
});
}
Кнопка станет доступна для tap.
Смотрите также
-
метод
drag,
ручная прокрутка -
метод
tap,
после прокрутки -
метод
text,
Finder -
класс
WidgetTester,
API теста