scene library

Classes

SceneSpec
Per-scene runtime handles: created fresh per scene mount, owned by the scenario (dispose in the test), wired by the driver's buildScene.

Constants

kSceneAKey → const String
Key of element A — the fixed, tappable FloatingActionButton.
kSceneBRow → const int
Row index of element B (the anchor row).
kSceneListKey → const String
Key of the scrollable list (ScrollController owner).
kSceneRowCount → const int
Rows in the scene's ListView.
kSceneRowHeight → const double
Height of one row, in logical px.
kSceneScrollMargin → const double
SizedBox after the rows — guarantees maxScrollExtent >= 1000 on any target screen; a scenario whose scene cannot scroll that far is a scene defect and fails instead of measuring an empty scroll.

Functions

buildContractScene(SceneSpec spec, {required bool withLibrary, required Widget wrapRow(int index, Widget row), Widget wrapHome(Widget home)?, ThemeData? theme, List<NavigatorObserver>? navigatorObservers, Widget appBuilder(BuildContext, Widget?)?}) Widget
Builds the neutral contract scene for a LibraryDriver: the AppBar + element A (FAB, increments SceneSpec.aTaps) + the ListView of 12 rows (element B at kSceneBRow) + the scroll margin, all under a MaterialApp. The consumer's driver supplies only the library-specific parts:
sceneRowKey(int index) String
Key of row index (kSceneBRow = element B).