MaterialUiCompatibilityBridge class

A bridge widget for applications that have migrated to package:material_ui but still contain subtrees or package dependencies using package:flutter/material.dart.

This widget maps the parent modern.ThemeData from package:material_ui into a legacy legacy.ThemeData and overrides legacy.Localizations with delegates so that legacy widgets in child can resolve legacy.Theme.of(context) and legacy.MaterialLocalizations.of(context).

App-wide usage

The recommended way to use this bridge across an entire application is to wrap the app once using modern.MaterialApp.builder:

import 'package:material_ui/material_ui.dart';

void main() {
  runApp(const MyApp());
}

class MyApp extends StatelessWidget {
  const MyApp({super.key});

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      theme: ThemeData(
        colorScheme: ColorScheme.fromSeed(seedColor: const Color(0xFF6750A4)),
      ),
      builder: (BuildContext context, Widget? child) {
        return MaterialUiCompatibilityBridge(child: child!);
      },
      home: const HomeScreen(),
    );
  }
}

Subtree usage

Alternatively, wrap specific legacy package widgets or subtrees:

import 'package:material_ui/material_ui.dart';
import 'package:some_legacy_package/some_legacy_package.dart';

class MyScreen extends StatelessWidget {
  const MyScreen({super.key});

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(title: const Text('Migrated Screen')),
      body: MaterialUiCompatibilityBridge(
        child: LegacyPackageWidget(),
      ),
    );
  }
}
Inheritance
Annotations
  • @Deprecated('MaterialUiCompatibilityBridge is a temporary migration utility intended for use only while ' 'dependencies are being migrated to package:material_ui. ' 'This feature was deprecated to indicate it will be removed in a future release.')

Constructors

MaterialUiCompatibilityBridge({Key? key, required Widget child, List<LocalizationsDelegate>? delegates})
Creates a MaterialUiCompatibilityBridge.
const

Properties

child → Widget
The widget below this widget in the tree.
final
delegates → List<LocalizationsDelegate>?
The localizations delegates for legacy widgets.
final
hashCode → int
The hash code for this object.
no setterinherited
key → Key?
Controls how one widget replaces another widget in the tree.
finalinherited
runtimeType → Type
A representation of the runtime type of the object.
no setterinherited

Methods

build(BuildContext context) → Widget
Describes the part of the user interface represented by this widget.
override
createElement() → StatelessElement
Creates a StatelessElement to manage this widget's location in the tree.
inherited
debugDescribeChildren() → List<DiagnosticsNode>
Returns a list of DiagnosticsNode objects describing this node's children.
inherited
debugFillProperties(DiagnosticPropertiesBuilder properties) → void
Add additional properties associated with the node.
inherited
noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
toDiagnosticsNode({String? name, DiagnosticsTreeStyle? style}) → DiagnosticsNode
Returns a debug representation of the object that is used by debugging tools and by DiagnosticsNode.toStringDeep.
inherited
toString({DiagnosticLevel minLevel = DiagnosticLevel.info}) → String
A string representation of this object.
inherited
toStringDeep({String prefixLineOne = '', String? prefixOtherLines, DiagnosticLevel minLevel = DiagnosticLevel.debug, int wrapWidth = 65}) → String
Returns a string representation of this node and its descendants.
inherited
toStringShallow({String joiner = ', ', DiagnosticLevel minLevel = DiagnosticLevel.debug}) → String
Returns a one-line detailed description of the object.
inherited
toStringShort() → String
A short, textual description of this widget.
inherited

Operators

operator ==(Object other) → bool
The equality operator.
inherited