flutter_context_dtx 1.5.1
flutter_context_dtx: ^1.5.1 copied to clipboard
A package that simplifies the access most of used properties/functions right in the BuildContext.
Flutter Context DTX #
This extension package provides easy access to the most commonly used properties, functions, and additional convenience methods that depend on the BuildContext instance.
Based on package build_context.
Install #
Add it in your pubspec.yaml:
dependencies:
flutter_context_dtx:
Import it where you want to use it e.g, in your widget's file.
import 'package:flutter_context_dtx/flutter_context_dtx.dart';
Usage #
import 'package:flutter/material.dart';
import "package:flutter_context_dtx/flutter_context_dtx.dart";
class MyHomePage extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Scaffold(
backgroundColor: context.scaffoldBackgroundColor, // There is no Theme.of(context)
body: Center(
child: GestureDetector(
onTap: () => context.pushNamed('/detailsPage'), // we use only context not Navigator.of(context)
child: Text(
'Press Me',
style: context.subtitle1Style, // we use only context not Theme.of(context)
),
),
),
);
}
}
Available Extensions #
MediaQuery: #
⚠️ Note: The breakpoints are based on the material design.
-
context.mediaQuery -
context.screenSize -
context.screenPadding -
context.viewPadding -
context.viewInsets -
context.screenWidth -
context.screenHeight -
context.statusBarHeight -
context.orientation -
context.isLandscape -
context.isPortrait -
context.alwaysUse24HourFormat -
context.screenDensity -
context.platformBrightness -
context.textScaleFactor -
context.shortestScreenSide -
context.longestScreenSide -
context.isSmallPhoneScreen -
context.isMediumPhoneScreen -
context.isLargePhoneScreen -
context.isSmallTabletScreen -
context.isLargeTabletScreen -
context.isPhoneScreen -
context.isTabletScreen -
context.isLaptopScreen -
context.isDesktopScreen -
context.isXSmallScreen -
context.isXXSmallScreen -
context.isSmallScreen -
context.isSmallScreen -
context.isMediumScreen -
context.isLargeScreen -
context.isXLargeScreen -
context.margin -
context.columns -
context.widthBody -
context.windowSizeClass -
context.windowWidthSizeClass -
context.windowHeightSizeClass -
context.isWindowCompactWidth -
context.isWindowMediumWidth -
context.isWindowExpandedWidth -
context.isWindowLargeWidth -
context.isWindowExtraLargeWidth -
context.isWindowCompactHeight -
context.isWindowMediumHeight -
context.isWindowExpandedHeight -
context.space -
context.pane
Navigator: #
context.push()context.replacement()context.pushNamed()context.pushReplacementNamed()context.popAndPushNamed()context.pushNamedAndRemoveUntil()context.ushAndRemoveUntil()context.replace()context.replaceRouteBelow()context.canPop()context.maybePop()context.popUntil()context.pop()context.removeRoute()context.removeRouteBelow()context.finalizeRoute()
Theme: #
-
context.theme -
context.textTheme -
context.primaryTextTheme -
context.bottomAppBarTheme -
context.bottomSheetTheme -
context.popupMenuTheme -
context.buttonBarTheme -
context.dividerTheme -
context.chipTheme -
context.sliderTheme -
context.cardTheme -
context.tabBarTheme -
context.dialogTheme -
context.themeBrightness -
context.isDarkBrightness -
context.isLightBrightness -
context.backgroundColor -
context.primaryColor -
context.canvasColor -
context.scaffoldBackgroundColor -
context.dividerColor -
context.disabledColor -
context.appBarTheme -
context.tooltipTheme -
context.toggleButtonsTheme -
context.navigationRailTheme -
context.buttonTheme -
context.iconTheme -
context.listTileTheme -
context.headline1TextStyle -
context.headline2TextStyle -
context.headline3TextStyle -
context.headline4TextStyle -
context.headline5TextStyle -
context.headline6TextStyle -
context.subtitle1TextStyle -
context.bodyText1TextStyle -
context.bodyText2TextStyle -
context.captionTextStyle -
context.buttonTextStyle -
context.subtitle2TextStyle -
context.overlineTextStyle -
context.headline1PrimaryTextStyle -
context.headline2PrimaryTextStyle -
context.headline3PrimaryTextStyle -
context.headline4PrimaryTextStyle -
context.headline5PrimaryTextStyle -
context.headline6PrimaryTextStyle -
context.subtitle1PrimaryTextStyle -
context.bodyText1PrimaryTextStyle -
context.bodyText2PrimaryTextStyle -
context.captionPrimaryTextStyle -
context.buttonPrimaryTextStyle -
context.subtitle2PrimaryTextStyle -
context.overlinePrimaryTextStyle -
context.defaultTextStyle -
context.textDirection -
context.displayLargeTextStyle -
context.displayMediumTextStyle -
context.displaySmallTextStyle -
context.headlineLargeTextStyle -
context.headlineMediumTextStyle -
context.headlineSmallTextStyle -
context.titleLargeTextStyle -
context.titleMediumTextStyle -
context.titleSmallTextStyle -
context.labelLargeTextStyle -
context.labelMediumTextStyle -
context.labelSmallTextStyle -
context.bodyLargeTextStyle -
context.bodyMediumTextStyle -
context.bodySmallTextStyle -
context.colorScheme -
context.colorSchemePrimary -
context.colorSchemePrimaryVariant -
context.colorSchemeSecondary -
context.colorSchemeTertiary -
context.colorSchemeSecondaryVariant -
context.colorSchemePrimaryContainer -
context.colorSchemeSecondaryContainer -
context.colorSchemeTertiaryContainer -
context.colorSchemeErrorContainer -
context.colorSchemeInversePrimary -
context.colorSchemeInverseSurface -
context.colorSchemeSurface -
context.colorSchemeSurfaceVariant -
context.colorSchemeSurfaceTint -
context.colorSchemeShadow -
context.colorSchemeOutline -
context.colorSchemeBackground -
context.colorSchemeError -
context.colorSchemeOnPrimary -
context.colorSchemeOnSecondary -
context.colorSchemeOnBackground -
context.colorSchemeOnSurface -
context.colorSchemeOnError -
context.colorSchemeOnPrimaryContainer -
context.colorSchemeOnSecondaryContainer -
context.colorSchemeOnTertiaryContainer -
context.colorSchemeOnErrorContainer -
context.colorSchemeOnInverseSurface -
context.colorSchemeOnSurfaceVariant -
context.colorSchemeBrightness -
context.platform -
context.isAndroid -
context.isIOS -
context.isWindows -
context.isMacOS -
context.isFuchsia -
context.isLinux -
context.isMobile -
context.isWeb -
context.isDesktop -
context.isMobile -
context.isGoogle -
context.isApple
Scaffold: #
⚠️ Note: those must be called in the context of a `Scaffold` widget otherwise you might have errors.
context.scaffoldStatecontext.appBarMaxHeightcontext.hasAppBarcontext.hasDrawercontext.hasEndDrawercontext.hasFloatingActionButtoncontext.isDrawerOpencontext.isEndDrawerOpencontext.showSnackBar()context.removeCurrentSnackBar()context.hideCurrentSnackBar()context.openDrawer()context.openEndDrawer()context.showBottomSheet()
Form: #
⚠️ Note: those must be called in the context of a `Scaffold` widget otherwise you might have errors.
context.form.validate()context.form.reset()context.form.save()
FocusScope: #
-
context.focusScope.hasFocus -
context.focusScope.isFirstFocus -
context.focusScope.canRequestFocus -
context.focusScope.hasPrimaryFocus -
context.focusScope.unfocus() -
context.focusScope.nextFocus() -
context.focusScope.requestFocus() -
context.focusScope.previousFocus() -
context.focusScope.setFirstFocus() -
context.focusScope.consumeKeyboardToken() -
context.closeKeyboard() -
context.focusTraversalOrder -
context.focusTraversalPolicy
Overlay: #
context.overlaycontext.addOverlay()
Localizations: #
context.localecontext.countryCodecontext.languageCodecontext.materialLocalizationscontext.widgetsLocalizations
ModalRoute: #
context.modalRoutecontext.routeSettingscontext.args<String>()
Controller: #
context.tabControllercontext.materialInkControllercontext.primaryScrollController
Others: #
context.pageStoragecontext.scrollBehaviorcontext.scrollablecontext.actionscontext.animatedListcontext.defaultAssetBundlecontext.sliverAnimatedListcontext.tickingEnabled
🤝 Support #
You liked this package? Then give it a ⭐️. If you want to help then:
- Fork this repository
- Send a Pull Request with new features
- Share this package
- Create issues if you find a bug or want to suggest a new extension
Credits #
- build_context created by Pedro Massango
📝 License #
Copyright © 2025 Kauê Martins.
This project is MIT licensed.