Sheets topic

Sheets

showSheenSheet opens a sheet with two heights, a grabber and a header; showSheenCustomSheet lets you draw the whole surface. showSheenDateSheet picks a date on wheels, showSheenDocumentSheet shows long text, and SheenFormSheet turns a page into a centred card on tablets.

A sheet

Classes

SheenDateWheels Sheets
Day, month and year wheels, as showSheenDateSheet shows them; usable on their own in a page.
SheenDetentHaptics Sheets
A light tap when a dragged sheet reaches one of its detents, as iOS sheets give; nothing while it opens.
SheenFormSheet Sheets
A form page that becomes a centred card on wide windows.
SheenNested Sheets
Marks a subtree on a raised ground, such as a sheet: lists and fields inside it take SheenColors.surfaceMuted instead of SheenColors.surface, so they stay apart from the ground.
SheenSheetBody Sheets
The surface of a sheet: the grabber, a header with a close button, the title and Done (or trailing), and the content, marked SheenNested. For showSheenCustomSheet.
SheenSheetRoute<T> Sheets
The route behind showSheenSheet and showSheenCustomSheet, for apps that push routes themselves.

Functions

showSheenCustomSheet<T>({required BuildContext context, required Widget builder(BuildContext sheetContext, ScrollController scroll), double medium = .55, double large = .92, bool startLarge = true, bool useRootNavigator = false}) → Future<T?> Sheets
Opens a sheet whose whole surface builder draws, usually a SheenSheetBody whose header it controls itself (for example a Done button that waits for a valid choice). The presentation is that of showSheenSheet, and so is useRootNavigator.
showSheenDateSheet({required BuildContext context, required String title, required DateTime first, required DateTime last, DateTime? initial, List<String>? monthLabels, SheenDateOrder order = SheenDateOrder.dayMonthYear, String? doneLabel, String? cancelLabel}) → Future<DateTime?> Sheets
Opens a sheet with day, month and year wheels and returns the date shown when Done is tapped, or null when the sheet is closed.
showSheenDocumentSheet(BuildContext context, {required String title, String? text, List<Widget> children = const [], String? closeLabel}) → Future<void> Sheets
Opens a long text, such as terms or a policy, in a large sheet with a close button.
showSheenSheet<T>({required BuildContext context, required String title, required Widget builder(BuildContext sheetContext, ScrollController scroll), String? cancelLabel, String? doneLabel, VoidCallback? onDone, String? subtitle, double medium = .55, double large = .92, bool startLarge = true, bool useRootNavigator = false}) → Future<T?> Sheets
Opens a sheet with a header: a grabber, a close button, the title and, when doneLabel is given, a prominent Done button. It has two heights (detents), medium and large (fractions of the screen), snaps between them and closes when dragged down or when the dim behind it is tapped.

Enums

SheenDateOrder Sheets
The order of the wheels in showSheenDateSheet.