longPress method

Future<void> longPress(
  1. Finder finder, {
  2. SettlePolicy? settlePolicy,
  3. Duration? visibleTimeout,
  4. Duration? settleTimeout,
})
inherited

Waits until this finder finds at least 1 visible widget and then makes long press gesture on it.

Example:

// long presses on the first widget having Key('createAccount')
await $(#createAccount).longPress();

If the finder finds more than 1 widget, you can choose which one to make long press on:

// long presses on the third TextButton widget
await $(TextButton).at(2).longPress();

After long press gesture this method automatically calls WidgetTester.pumpAndSettle. If you want to disable this behavior, set settlePolicy to SettlePolicy.noSettle.

See also:

Implementation

Future<void> longPress(
  Finder finder, {
  SettlePolicy? settlePolicy,
  Duration? visibleTimeout,
  Duration? settleTimeout,
}) {
  return TestAsyncUtils.guard(() async {
    final resolvedFinder = await waitUntilVisible(
      finder,
      timeout: visibleTimeout,
    );
    await tester.longPress(resolvedFinder.first);
    await _performPump(
      settlePolicy: settlePolicy,
      settleTimeout: settleTimeout,
    );
  });
}