YaruMasterDetailPage class

A responsive master-detail page.

YaruMasterDetailPage automatically switches between portrait and landscape mode depending on layoutDelegate.

YaruMasterDetailPage(
  length: 8,
  appBar: AppBar(title: const Text('Master')),
  tileBuilder: (context, index, selected) => YaruMasterTile(
    leading: const Icon(YaruIcons.menu),
    title: Text('Master $index'),
  ),
  pageBuilder: (context, index) => YaruDetailPage(
    appBar: AppBar(
      title: Text('Detail $index'),
    ),
    body: Center(child: Text('Detail $index')),
  ),
)
Portrait Landscape
portrait landscape

See also:

Inheritance

Constructors

YaruMasterDetailPage({Key? key, int? length, required YaruMasterTileBuilder tileBuilder, required IndexedWidgetBuilder pageBuilder, WidgetBuilder? emptyBuilder, YaruMasterDetailPaneLayoutDelegate layoutDelegate = const YaruMasterFixedPaneDelegate(paneWidth: _kDefaultPaneWidth), double? breakpoint, PreferredSizeWidget? appBar, YaruAppBarBuilder? appBarBuilder, Widget? bottomBar, int? initialIndex, ValueChanged<int?>? onSelected, YaruPageController? controller, GlobalKey<NavigatorState>? navigatorKey, List<NavigatorObserver> navigatorObservers = const <NavigatorObserver>[], String? initialRoute, RouteFactory? onGenerateRoute, RouteFactory? onUnknownRoute})
const

Properties

appBar PreferredSizeWidget?
An optional custom AppBar for the left pane.
final
appBarBuilder YaruAppBarBuilder?
An optional custom AppBar builder for the master pane.
final
bottomBar Widget?
An optional bottom bar for the left pane.
final
breakpoint double?
The breakpoint at which YaruMasterDetailPage switches between portrait and landscape layouts.
final
controller YaruPageController?
An optional controller that can be used to navigate to a specific index.
final
emptyBuilder WidgetBuilder?
A builder that is called if there are no pages to display.
final
hashCode int
The hash code for this object.
no setterinherited
initialIndex int?
An optional index of the initial page to show.
final
initialRoute String?
The route name for the initial route.
final
key Key?
Controls how one widget replaces another widget in the tree.
finalinherited
layoutDelegate YaruMasterDetailPaneLayoutDelegate
Controls the width and resizing capacity of the left pane.
final
length int?
The total number of pages.
final
A key to use when building the Navigator widget.
final
A list of observers for the Navigator widget.
final
onGenerateRoute RouteFactory?
Called to generate a route for a given RouteSettings.
final
onSelected ValueChanged<int?>?
Called when the user selects a page.
final
onUnknownRoute RouteFactory?
Called when onGenerateRoute fails to generate a route.
final
pageBuilder IndexedWidgetBuilder
A builder that is called for each page to build its detail page.
final
runtimeType Type
A representation of the runtime type of the object.
no setterinherited
tileBuilder YaruMasterTileBuilder
A builder that is called for each page to build its master tile.
final

Methods

createElement() StatefulElement
Creates a StatefulElement to manage this widget's location in the tree.
inherited
createState() State<YaruMasterDetailPage>
Creates the mutable state for this widget at a given location in the tree.
override
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}) 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

Static Methods

maybeOrientationOf(BuildContext context) Orientation?
Returns the orientation of the YaruMasterDetailPage that most tightly encloses the given context or null if there is no YaruMasterDetailPage.
orientationOf(BuildContext context) Orientation
Returns the orientation of the YaruMasterDetailPage that most tightly encloses the given context.