BaseLanguageSwitcher class abstract
Abstract base class for language switcher widgets that provides common functionality.
This class handles the state management and data flow for language switching, allowing concrete implementations to focus on UI presentation. It automatically provides access to the current locale, language switcher notifier, and supported locales.
Example usage:
class CustomLanguageSwitcher extends BaseLanguageSwitcher {
const CustomLanguageSwitcher({super.key});
@override
Widget build(
BuildContext context,
WidgetRef ref,
Locale state,
LanguageSwitcherNotifier notifier,
List<LocaleInfo> supportedLocales,
) {
return ListView.builder(
itemCount: supportedLocales.length,
itemBuilder: (context, index) {
final localeInfo = supportedLocales[index];
final isSelected = state.languageCode == localeInfo.locale.languageCode;
return ListTile(
title: Text(localeInfo.displayName),
selected: isSelected,
onTap: () => notifier.changeLocale(localeInfo.locale),
);
},
);
}
}
- Inheritance
-
- Object
- DiagnosticableTree
- Widget
- StatefulWidget
- ConsumerStatefulWidget
- BaseLanguageSwitcher
- Implementers
Constructors
- BaseLanguageSwitcher.new({Key? key})
-
const
Properties
Methods
-
build(
BuildContext context, WidgetRef ref, Locale state, LanguageSwitcherNotifier notifier, List< LocaleInfo> supportedLocales) → Widget - Build method that concrete implementations must override.
-
createElement(
) → ConsumerStatefulElement -
Creates a StatefulElement to manage this widget's location in the tree.
inherited
-
createState(
) → _BaseLanguageSwitcherState -
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, 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