tabbed_view 2.0.0
tabbed_view: ^2.0.0 copied to clipboard
Flutter widget inspired by the classic Desktop-style tab component. Supports customizable themes.
2.0.0 #
TabbedView- Removed the
hiddenTabsMenuItemBuilderattribute. - Removed the
tabSelectInterceptorattribute.
- Removed the
TabbedViewController- Moved
reorderEnableattribute toTabbedView. - Moved
onReorderattribute toTabbedView. - New methods:
selectTab(TabData tab)getTabByValue(dynamic value)selectTabByValue(dynamic value)
- Moved
TabStatus- Renamed
highlightedvalue tohovered.
- Renamed
TabData- Renamed and refactored
buttonsattribute tobuttonsBuilderto use the builder pattern.
- Renamed and refactored
TabButton- The constructor was replaced by two separate constructors:
TabButton.iconandTabButton.menu.
- The constructor was replaced by two separate constructors:
TabRemoveInterceptor- ̀Added the
BuildContextattribute.
- ̀Added the
OnTabSelection- ̀Added the
tabDataattribute.
- ̀Added the
- Theme
- Refactored theming system to fully support all tab bar positions (
top,bottom,left,right).- Added
TabBarPositionenum to represent the bar positions. - Added
SideTabsLayoutto define how side-positioned tabs (left or right) are laid out (rotated or stacked).
- Added
- Renamed
Mobiletheme toUnderline - Removed
Darktheme. - Added brightness support.
- The theme data classes are now mutable.
TabbedViewThemeData- New attributes:
divider: The border that separates the content area from the tab bar.
- New attributes:
TabsAreaThemeData- Renamed
normalButtonColorattribute tobuttonColor. - Renamed
hoverButtonColorattribute tohoveredButtonColor. - Renamed
hoverButtonBackgroundattribute tohoveredButtonBackground. - Allowed null
hoveredButtonColorto inherit default color. - New attributes:
crossAxisFit: Defines how the cross axis will fit within the tabs area.crossAxisAlignment: Defines the alignment of tabs in relation to the main content.tabHeaderExtentSize: Defines how tab headers are sized relative to each other along their extent.
- Removed attributes:
gapBottomBordergapSideBorder̀
- Renamed
TabStatusThemeData- Renamed
normalButtonColorattribute tobuttonColor. - Renamed
hoverButtonBackgroundattribute tohoveredButtonBackground.
- Renamed
TabThemeData- Renamed
highlightedStatusattribute tohoveredStatus. - Renamed
normalButtonColorattribute tobuttonColor. - Renamed
hoverButtonColorattribute tohoveredButtonColor. - Renamed
hoverButtonBackgroundattribute tohoveredButtonBackground. - Allowed null
hoveredButtonColorto inherit default color.
- Renamed
TabThemeDataandTabStatusThemeData- Removed attributes:
innerBottomBorderinnerTopBorderdecorationmargin
- New attributes:
decorationBuilder: A builder for creating complex and composable tab decorators.maxMainSize: The maximum main size of the tab.sideTabsLayout: Define how side-positioned tabs (left or right) are laid out.
- Removed attributes:
ContentAreaThemeData- New attributes:
border: The border around the outer side of the tab content area, excluding the side adjacent to the tabs.borderRadius: The radius used to round the corners.
- New attributes:
- Replaced
HiddenTabsMenuThemeDatawithTabbedViewMenuThemeData.
- Refactored theming system to fully support all tab bar positions (
- Special thanks to Patrick Legacy for his great contributions to this release.
1.22.1 #
- Bugfix
- Tab width doesn't grow to fit the new title set by
TabData.text.
- Tab width doesn't grow to fit the new title set by
1.22.0 #
TabData- Added the ability to override tab themes.
1.21.0 #
TabbedView- Providing
TabDataintabCloseInterceptor. - Adding
dragScopefor drag rejection.
- Providing
1.20.0 #
- Added support for asynchronous tab close interception in `TabCloseInterceptor.
1.19.1 #
- Bugfix
- Error setting text size
1.19.0 #
- Allows you to define a maximum width for the tab text.
1.18.1 #
- Bugfix
- Fields in hidden tabs continue to receive focus when pressing TAB.
1.18.0 #
- Highlighting the tab's drop position.
- Allow dragging to reorder tabs to the last position.
- Allow dragging tabs between different
TabbedViewinstances. - Bugfix
- Incorrect state for the index of the highlighted tab after being closed.
Changes #
- Change in the signature of
OnDraggableBuild.- From:
(int tabIndex, TabData tabData) - To:
(TabbedViewController controller, int tabIndex, TabData tabData)
- From:
Draggablewill always beDraggableDatatype:Draggable<DraggableData>TabsAreaThemeData- New attribute:
dropColor.
- New attribute:
1.17.0 #
- Tab reordering
TabbedViewController- New methods
setTabsreorderTabselectedTab
- New attribute:
reorderEnable
- New methods
- New callback:
OnReorder TabThemeData- New attributes
draggingDecorationdraggingOpacity
- New attributes
TabData- New attribute:
draggable
- New attribute:
- New class:
DraggableConfig - New typedef:
OnDraggableBuild TabbedView- The
draggableTabBuilderhas been replaced byonDraggableBuild- Automatic creation of a
Draggable<TabData>
- Automatic creation of a
- The
TabData- The
uniqueKeyattribute has been renamed tokey.
- The
- Minimum sdk version required: 2.19.0
Migrating custom drag feedback #
From:
TabbedView tabbedView = TabbedView(
controller: _controller,
draggableTabBuilder: (int tabIndex, TabData tab, Widget tabWidget) {
return Draggable<String>(
child: tabWidget,
feedback: Material(
child: Container(
child: Text(tab.text),
padding: EdgeInsets.all(4),
decoration: BoxDecoration(border: Border.all()))),
data: tab.text,
dragAnchorStrategy: (Draggable<Object> draggable,
BuildContext context, Offset position) {
return Offset.zero;
});
});
To:
TabbedView tabbedView = TabbedView(
controller: _controller,
onDraggableBuild: (int tabIndex, TabData tabData) {
return DraggableConfig(
feedback: Container(
child: Text(tabData.text),
padding: EdgeInsets.all(4),
decoration: BoxDecoration(border: Border.all())));
});
1.16.0+1 #
- Removing the use of deprecated constructor.
1.16.0 #
- Tab leading widget
1.15.0 #
- Adding properties
TabbedView.tabsAreaVisibleTabsAreaThemeData.visibleContentAreaThemeData.decorationNoTabsArea
- Bugfix
- Implementing
hashCodeand==of the theme data.
- Implementing
1.14.0+1 #
- Stopping using deprecated
hashValuesmethod.
1.14.0 #
- Renaming
MenuThemeDatatoTabbedViewMenuThemeData- Avoiding conflict with next Flutter version.
1.13.0+1 #
- Formatting code.
1.13.0 #
- Adding interceptor for tab selection.
1.12.0 #
- Adding
getTabByIndexmethod inTabbedViewController. - Allowing update the following
TabDataattributes:buttons,closable,content,textandvalue.
1.11.1 #
- Bugfix
- Removing theme settings values equal to inherited ones
- Mobile theme
tab.highlightedStatus.decorationtab.selectedStatus.decoration
- Mobile theme
- Removing theme settings values equal to inherited ones
1.11.0 #
- Removing unused argument
normalStatusfromTabThemeData. paddingWithoutButtonsetting inTabThemeDataandTabStatusThemeData
1.10.0+1 #
- Removing unnecessary imports
1.10.0 #
- API change
ButtonColorshas been split intonormalButtonColor,hoverButtonColoranddisabledButtonColor- New buttons theme configurations:
buttonPadding,normalButtonBackground,hoverButtonBackgroundanddisabledButtonBackground
- Default themes have been changed to use buttons decoration
- Bug fix
- Selected tab not being painted on top
- Changed mouse cursor over selected tab
1.9.0 #
- Padding added to path icons to conform to Material Design standards
- Gap of the buttons removed from the default themes
- API change
IconProviderto hold anIconPathor anIconDatain the themes andTabButton
1.8.0+1 #
- README update
1.8.0 #
- New icons
- Default themes adjustments, such as gaps and paddings
buttonsGapsetting inTabsAreaThemeDataIconPathto be used in icons drawingiconSizesetting inTabButton- API changes
minimalIconSizeanddefaultIconSizeconstants moved fromTabbedViewThemeDatatoTabbedViewThemeConstantsButtonsAreaThemeDataattributes moved toTabsAreaThemeDataTabButtoniconparameter renamed toiconData
TabsAreaThemeDatacloseButtonIconrenamed tocloseIconDatahiddenTabsMenuButtonIconrenamed tomenuIconDatatabattribute moved toTabbedViewThemeDatacloseIconDataattribute moved toTabThemeDatacloseIconPathattribute moved toTabThemeData
1.7.0 #
TabButtonpadding
1.6.0 #
- API changes
menuBuilderhas been removed fromTabbedViewController
- Bug fix
- Error building menu with empty list of
TabbedViewMenuItem
- Error building menu with empty list of
1.5.0 #
- API changes
OnTabClosingtypedef renamed toTabCloseInterceptor- Added
OnTabClosetypedef
1.4.0 #
- API changes
TabbedViewThemerefactored to be a widget following the same pattern used by Flutter'sTheme- Old theme classes have been renamed
TabbedViewThemetoTabbedViewThemeDataTabsAreaThemetoTabsAreaThemeDataContentAreaThemetoContentAreaThemeDataMenuThemetoMenuThemeDataButtonsAreaThemetoButtonsAreaThemeDataTabThemetoTabThemeDataTabStatusThemetoTabStatusThemeData
1.3.1 #
- Bug fix
- Tabs area overflow
1.3.0 #
- Feature for clipping tab content
- Bug fix
- Tab area without performing the layout after tab selection
1.2.1 #
- Bug fix
- Tabs area overflow
1.2.0 #
- Added
keepAliveparameter to prevent loss of tab content state due to tree change during tab selection event.
1.1.2 #
- Bug fix
- Overlap between tabs and button area
1.1.1 #
- Class name has been fixed (how embarrassing)
TabbedWiewhas been renamed toTabbedView
1.1.0+1 #
- README update
1.1.0 #
- Draggable tab builder
- Bug fix
- Divisor between tabs and content starting drawing at wrong offset
1.0.0+2 #
- README update
1.0.0+1 #
- README update
1.0.0 #
- Final version
0.7.0 #
- Tabs area buttons builder
- Theme changes
lighttheme has been renamed toclassictheme
0.6.0 #
- Theme changes
0.5.0 #
- Theme changes
- Documentation
- Menu builder
TabbedWiewModelhas been changed toTabbedWiewController
0.4.0 #
- API has been changed to simplify changing themes
0.3.0 #
- Theme changes
- New themes
0.2.0 #
- First version
0.1.0 #
- Package creation