platform_adaptive_widgets library

Classes

AppData
Configuration for a regular (non-router) platform app.
CupertinoAlertDialogData
Cupertino-specific configuration for a platform alert dialog.
CupertinoAppData
Cupertino-specific configuration for regular (non-router) apps.
CupertinoAppRouterData
Cupertino-specific configuration for router-based apps.
CupertinoButtonData
Cupertino-specific configuration for a platform button.
CupertinoCheckboxData
Cupertino-specific configuration for a checkbox widget.
CupertinoDatePickerData
Cupertino-specific configuration for the platform date picker.
CupertinoExpansionTileData
Cupertino-specific configuration for a platform expansion tile.
CupertinoListTileData
Cupertino-specific configuration for a platform list tile.
CupertinoMenuPickerData
Cupertino-specific configuration for a platform menu picker.
CupertinoNavigationBarData
Cupertino-specific configuration for a platform navigation bar.
CupertinoProgressIndicatorData
Cupertino-specific configuration for a platform progress indicator.
CupertinoRadioData<T>
Cupertino-specific configuration for a radio button.
CupertinoScaffoldData
Cupertino-specific scaffold data.
CupertinoScrollbarData
Cupertino-specific configuration for a platform scrollbar.
CupertinoSearchBarData
Cupertino-specific configuration for a search bar widget.
CupertinoSegmentButtonData<T extends Object>
Cupertino-specific configuration for a segmented control.
CupertinoSwitchData
Cupertino-specific configuration for a switch widget.
CupertinoTabScaffoldData
Cupertino-specific data for a tab-based scaffold.
CupertinoTextFieldData
Cupertino-specific configuration for a text field widget.
Date
A gregorian calendar date
MaterialAlertDialogData
Material-specific configuration for a platform alert dialog.
MaterialAppBarData
Material-specific configuration for a platform app bar.
MaterialAppData
Material-specific configuration for regular (non-router) apps.
MaterialAppRouterData
Material-specific configuration for router-based apps.
MaterialButtonData
Material-specific configuration for a platform button.
MaterialCheckboxData
Material-specific configuration for a checkbox widget.
MaterialDatePickerData
Material-specific configuration for the platform date picker.
MaterialDialogData
Material-specific configuration for showing a dialog.
MaterialExpansionTileData
Material-specific configuration for a platform expansion tile.
MaterialListTileData
Material-specific configuration for platform list tiles.
MaterialMenuPickerData
Material-specific configuration for a platform menu picker.
MaterialProgressIndicatorData
Material-specific configuration for a platform progress indicator.
MaterialRadioData<T>
Material-specific configuration for a radio button.
MaterialScaffoldData
Material-specific scaffold data.
MaterialScrollbarData
Material-specific configuration for a platform scrollbar.
MaterialSearchBarData
Material-specific configuration for a search bar widget.
MaterialSegmentButtonData<T extends Object>
Material-specific configuration for a segmented button.
MaterialSliderData
Material-specific configuration for a slider widget.
MaterialSwitchData
Material-specific configuration for a switch widget.
MaterialTabScaffoldData
Material-specific data for a tab-based scaffold.
MaterialTextFieldData
Material-specific configuration for a text field widget.
MaterialTimePickerData
Material-specific configuration for the platform time picker.
Represents an item in a menu picker.
PlatformAdaptiveIcons
A class that provides adaptive icons based on the current platform.
PlatformAlertDialogActionButton
A platform-adaptive dialog action button that renders TextButton on Android and CupertinoDialogAction on iOS.
PlatformApp
A platform-adaptive app widget that renders MaterialApp on Android and CupertinoApp on iOS.
PlatformAppBar
A platform-adaptive app bar that renders Material AppBar on Android and CupertinoNavigationBar on iOS.
PlatformAppBarData
Interface for platform app bar data that provides builders for both platforms.
PlatformAppRouterData
Platform-shared configuration for router-based apps.
PlatformButton
A platform-adaptive button that renders Material Design buttons on Android and Cupertino buttons on iOS.
PlatformCheckbox
A platform-adaptive checkbox that renders Material Design checkboxes on Android and Cupertino checkboxes on iOS.
PlatformCheckboxData
Platform-shared configuration for a checkbox widget.
PlatformDialogData
Platform-shared configuration for showing a dialog.
PlatformExpansionTile
A platform-adaptive expansion tile that renders Material ExpansionTile on Android and CupertinoExpansionTile on iOS.
PlatformListTile
A platform-adaptive list tile that renders Material ListTile on Android and CupertinoListTile on iOS.
PlatformMenuPicker<T extends Object>
A platform-adaptive menu picker that renders Material DropdownMenu on Android and CupertinoPicker with CupertinoListTile on iOS.
PlatformProgressIndicator
A platform-adaptive progress indicator that renders Material CircularProgressIndicator on Android and CupertinoActivityIndicator on iOS.
PlatformRadioData<T>
Platform-shared configuration for an individual radio button.
PlatformRadioGroup<T extends Object>
A platform-adaptive radio group that renders Material RadioGroup on Android
PlatformRadioGroupData<T extends Object>
Configuration for a platform radio group.
PlatformScaffold
A platform-adaptive scaffold that renders Material Scaffold on Android and CupertinoPageScaffold on iOS.
PlatformScrollbar
A platform-adaptive scrollbar that renders Material Scrollbar on Android and CupertinoScrollbar on iOS.
PlatformSearchBar
A platform-adaptive search bar that renders Material SearchBar on Android and CupertinoSearchTextField on iOS.
PlatformSearchBarData
Platform-shared configuration for a search bar widget.
PlatformSegmentButton<T extends Object>
A platform-adaptive segmented button that renders Material SegmentedButton on Android and CupertinoSlidingSegmentedControl on iOS.
PlatformSlider
A platform-adaptive slider that renders Material Slider on Android and CupertinoSlider on iOS.
PlatformSliderData
Platform-shared configuration for a slider widget.
PlatformSwitch
A platform-adaptive switch that renders Material Switch on Android and CupertinoSwitch on iOS.
PlatformSwitchData
Platform-shared configuration for a switch widget.
PlatformTabController
A unified tab controller that works for both Material and Cupertino tabs Simplified version based on CupertinoTabController with essential features Uses WeakReference pattern to avoid memory leaks:
PlatformTabScaffold
A platform-adaptive tab scaffold that renders a Material scaffold with a navigation bar on Android, and a Cupertino tab scaffold on iOS.
PlatformTextField
A platform-adaptive text field that renders Material TextField on Android and CupertinoTextField on iOS.
PlatformTextFieldData
Platform-shared configuration for a text field widget.
PlatformTheme
Provides access to platform-specific theme colors.
PlatformWidget
A platform-adaptive widget that provides different implementations for Material and Cupertino.
PlatformWidgetBuilder
A platform-adaptive widget that wraps a child widget with platform-specific behavior.
TabDestinationData
Data for a single destination in a tab-based navigation structure.

Enums

CupertinoButtonVariant
Cupertino button variants available for PlatformButton.
MaterialButtonVariant
Material Design button variants available for PlatformButton.

Extensions

DateTimeExtensions on DateTime
Extensions on DateTime for converting to a Date.
PlatformAdaptiveContextExtensions on BuildContext
Extensions on BuildContext for resolving platform-specific values.
TabControllerExtensions on PlatformTabController
An extension on PlatformTabController to create platform-specific controllers.
TimeOfDayExtensions on TimeOfDay
Extensions on TimeOfDay for converting to a DateTime.

Constants

kAutoImplyLeading → const bool
Default value for automaticallyImplyLeading in app bar data classes.
kDebugShowMaterialGrid → const bool
Default value for `debugShowMaterialGrid in Material app data.
kDefaultAutofocus → const bool
Default value for whether a widget should autofocus.
kDefaultCheckerboardOffscreenLayers → const bool
Default value for `checkerboardOffscreenLayers in app data classes.
kDefaultCheckerboardRasterCacheImages → const bool
Default value for `checkerboardRasterCacheImages in app data classes.
kDefaultDebugShowCheckedModeBanner → const bool
Default value for `debugShowCheckedModeBanner in app data classes.
kDefaultResizeToAvoidBottomInset → const bool
Default value for whether scaffold should resize to avoid bottom inset.
kDefaultShowPerformanceOverlay → const bool
Default value for `showPerformanceOverlay in app data classes.
kDefaultShowSemanticsDebugger → const bool
Default value for `showSemanticsDebugger in app data classes.
kDefaultSupportedLocales → const List<Locale>
Default value for `supportedLocales in app data classes.
kMaterialDefaultThemeAnimationCurve → const Curve
Default Material theme animation curve.
kMaterialDefaultThemeAnimationDuration → const Duration
Default Material theme animation duration.

Properties

isAndroid bool
Whether the app is running on Android.
no setter
isIOS bool
Whether the app is running on iOS.
no setter
targetPlatform TargetPlatform
The reusable target platform for the app.
final

Functions

showPlatformAlertDialog<T>({required BuildContext context, PlatformDialogData? platformDialogData, MaterialDialogData? materialDialogData, PlatformDialogData? cupertinoDialogData, MaterialAlertDialogData? materialAlertDialogData, CupertinoAlertDialogData? cupertinoAlertDialogData, Widget? title, Widget? content, List<Widget>? actions, Key? key}) Future<T?>
Shows a platform-adaptive alert dialog that renders Material AlertDialog on Android and CupertinoAlertDialog on iOS.
showPlatformDatePicker({required BuildContext context, required Date firstDate, required Date lastDate, Date? initialDate, Offset? anchorPoint, Color? barrierColor, bool? barrierDismissible, RouteSettings? routeSettings, bool useRootNavigator = kDefaultUseRootNavigator, SelectableDayPredicate? selectableDayPredicate, TransitionBuilder? builder, MaterialDatePickerData? materialDatePickerData, CupertinoDatePickerData? cupertinoDatePickerData}) Future<Date?>
Shows a platform-adaptive date picker that renders Material showDatePicker on Android and CupertinoDatePicker on iOS.
showPlatformDialog<T>({required BuildContext context, WidgetBuilder? builder, WidgetBuilder? materialBuilder, WidgetBuilder? cupertinoBuilder, PlatformDialogData? platformDialogData, MaterialDialogData? materialDialogData, PlatformDialogData? cupertinoDialogData, Key? materialKey, Color? materialBackgroundColor, Duration materialInsetAnimationDuration = _kMaterialInsetAnimationDuration, Curve materialInsetAnimationCurve = _kMaterialInsetAnimationCurve, SemanticsRole materialSemanticsRole = _kMaterialSemanticsRole, AlignmentGeometry? materialAlignment, ShapeBorder? materialShape, Clip? materialClipBehavior, BoxConstraints? materialConstraints, double? materialElevation, EdgeInsets? materialInsetPadding, Color? materialShadowColor, Color? materialSurfaceTintColor}) Future<T?>
Shows a platform-adaptive dialog that renders Material dialogs on Android and Cupertino dialogs on iOS.
showPlatformModalBottomSheet<T>({required BuildContext context, required WidgetBuilder builder}) Future<T?>
Shows a platform-adaptive modal bottom sheet that renders Material showModalBottomSheet on Android and showCupertinoModalPopup on iOS.
showPlatformSimpleAlert({required BuildContext context, required String message, required String cupertinoOkLabel, Color? materialBackgroundColor, double? materialElevation, EdgeInsetsGeometry? materialMargin, EdgeInsetsGeometry? materialPadding, double? materialWidth, ShapeBorder? materialShape, HitTestBehavior? materialHitTestBehavior, SnackBarBehavior? materialSnackBarBehavior, SnackBarAction? materialAction, double? materialActionOverflowThreshold, bool? materialShowCloseIcon, Color? materialCloseIconColor, Duration materialDuration = _snackBarDisplayDuration, bool? materialPersist, Animation<double>? materialAnimation, VoidCallback? materialOnVisible, DismissDirection? materialDismissDirection, Clip materialClipBehavior = Clip.hardEdge, String? cupertinoTitle, PlatformDialogData? cupertinoDialogData}) Future<void>
A pure convenience method for showing a simple alert. On material, it will show a SnackBar. On cupertino, it will show a CupertinoAlertDialog with a single 'OK' action.
showPlatformTimePicker({required BuildContext context, required TimeOfDay initialTime, Offset? anchorPoint, Color? barrierColor, bool? barrierDismissible, RouteSettings? routeSettings, bool useRootNavigator = kDefaultUseRootNavigator, TransitionBuilder? builder, MaterialTimePickerData? materialTimePickerData, CupertinoDatePickerData? cupertinoTimePickerData}) Future<TimeOfDay?>
Shows a platform-adaptive time picker that renders Material showTimePicker on Android and CupertinoDatePicker (in time mode) on iOS.

Typedefs

ValueAndButton<T extends Object> = ({Widget button, T value})
A record pairing a value with its corresponding radio button widget.