TabPane<T> constructor
const
TabPane<T> ({
- Key? key,
- required List<
TabPaneData< items,T> > - required TabPaneItemBuilder<
T> itemBuilder, - int focused = 0,
- required ValueChanged<
int> onFocused, - List<
Widget> leading = const [], - List<
Widget> trailing = const [], - BorderRadiusGeometry? borderRadius,
- Color? backgroundColor,
- BorderSide? border,
- ValueChanged<
List< ? onSort,TabPaneData< >T> > - required Widget child,
- double? barHeight,
Creates a TabPane with sortable tabs and integrated content display.
Configures a comprehensive tab interface that combines sortable tab management with a content display area, providing a complete tabbed user interface.
Parameters:
key(Key?): Widget identifier for the widget treeitems(List<TabPaneDataitemBuilder(TabPaneItemBuilderfocused(int, default: 0): Index of the currently focused tabonFocused(ValueChangedchild(Widget, required): Content widget for the main display areaonSort(ValueChanged<List<TabPaneDataleading(Listtrailing(ListborderRadius(BorderRadiusGeometry?, optional): Border radius overridebackgroundColor(Color?, optional): Background color overrideborder(BorderSide?, optional): Border styling overridebarHeight(double?, optional): Tab bar height override
Example:
TabPane<DocumentTab>(
items: documentTabs.map(TabPaneData.new).toList(),
focused: activeDocumentIndex,
onFocused: switchToDocument,
onSort: reorderDocuments,
leading: [IconButton(icon: Icon(Icons.add), onPressed: newDocument)],
trailing: [IconButton(icon: Icon(Icons.settings), onPressed: showSettings)],
itemBuilder: (context, item, index) => TabChild(
child: Row(
children: [
Text(item.data.title),
IconButton(icon: Icon(Icons.close), onPressed: () => closeTab(index)),
],
),
),
child: DocumentEditor(document: documents[activeDocumentIndex]),
)
Implementation
const TabPane({
super.key,
// required this.children,
required this.items,
required this.itemBuilder,
this.focused = 0,
required this.onFocused,
this.leading = const [],
this.trailing = const [],
this.borderRadius,
this.backgroundColor,
this.border,
this.onSort,
required this.child,
this.barHeight,
});