diff --git a/example/lib/sample/components/tabbar/brn_tab_example.dart b/example/lib/sample/components/tabbar/brn_tab_example.dart index 5e58e413..dae480e1 100644 --- a/example/lib/sample/components/tabbar/brn_tab_example.dart +++ b/example/lib/sample/components/tabbar/brn_tab_example.dart @@ -68,6 +68,14 @@ class _BrnTabExampleState extends State _createTopTabbarCountWidgets(), Divider(), _createOriginWidgets(), + Divider(), + _buildTabar(), + Container( + child: Container( + height: 200, + color: Colors.white, + ), + ) ], ), ), @@ -81,6 +89,17 @@ class _BrnTabExampleState extends State }); } + _buildTabar(){ + return TabBar(tabs: [ + Text("dataaa"), + Text("dBBB"), + Text("CC"), + Text("CC"), + Text("CC"), + ],controller: + TabController(length: 5, vsync: this),); + } + _createExpandedMoreTabbarWidgets() { var tabs = []; tabs.add(BadgeTab(text: "业务一")); diff --git a/example/pubspec.yaml b/example/pubspec.yaml index 2dc9f193..c3397476 100644 --- a/example/pubspec.yaml +++ b/example/pubspec.yaml @@ -28,7 +28,7 @@ dependencies: flutter_easyrefresh: ^2.2.1 lpinyin: ^2.0.3 badges: ^2.0.2 - intl: ^0.18.0 + intl: ^0.19.0 dev_dependencies: flutter_test: diff --git a/lib/src/components/tabbar/normal/brn_tab_bar.dart b/lib/src/components/tabbar/normal/brn_tab_bar.dart index 366afd8e..7200fe38 100644 --- a/lib/src/components/tabbar/normal/brn_tab_bar.dart +++ b/lib/src/components/tabbar/normal/brn_tab_bar.dart @@ -103,6 +103,8 @@ class BrnTabBar extends StatefulWidget { final double? tagHeight; BrnTabBarConfig? themeData; + /// 对齐方式 + TabAlignment? tabAlignment; BrnTabBar({ required this.tabs, @@ -134,6 +136,7 @@ class BrnTabBar extends StatefulWidget { this.tagSpacing, this.preLineTagCount, this.tagHeight, + this.tabAlignment, }) : assert(tabs != null) { this.themeData ??= BrnTabBarConfig(); this.themeData = BrnThemeConfigurator.instance @@ -282,6 +285,7 @@ class BrnTabBarState extends State { _brnTabbarController.entry = null; } }, + tabAlignment: widget.tabAlignment, indicator: CustomWidthUnderlineTabIndicator( insets: widget.indicatorPadding, borderSide: BorderSide( @@ -557,7 +561,7 @@ class BrnTabBarState extends State { // 获取 badgeTextWidth TextStyle badgeTextStyle = TextStyle(height: 1, fontSize: 10); TextPainter _badgeTextPainter = - TextPainter(textScaleFactor: MediaQuery.of(context).textScaleFactor); + TextPainter(textScaler: MediaQuery.of(context).textScaler); _badgeTextPainter.textDirection = TextDirection.ltr; _badgeTextPainter.maxLines = 1; _badgeTextPainter.text = TextSpan(text: _badgeText, style: badgeTextStyle); diff --git a/lib/src/theme/configs/brn_abnormal_state_config.dart b/lib/src/theme/configs/brn_abnormal_state_config.dart index 67b829ff..0ed6ac21 100644 --- a/lib/src/theme/configs/brn_abnormal_state_config.dart +++ b/lib/src/theme/configs/brn_abnormal_state_config.dart @@ -185,12 +185,12 @@ class BrnAbnormalStateConfig extends BrnBaseConfig { BrnAbnormalStateConfig merge(BrnAbnormalStateConfig? other) { if (other == null) return this; return copyWith( - titleTextStyle: titleTextStyle.merge(other._titleTextStyle), - contentTextStyle: contentTextStyle.merge(other._contentTextStyle), - operateTextStyle: operateTextStyle.merge(other._operateTextStyle), + titleTextStyle: _titleTextStyle?.merge(other._titleTextStyle), + contentTextStyle: _contentTextStyle?.merge(other._contentTextStyle), + operateTextStyle: _operateTextStyle?.merge(other._operateTextStyle), btnRadius: other._btnRadius, - singleTextStyle: singleTextStyle.merge(other._singleTextStyle), - doubleTextStyle: doubleTextStyle.merge(other._doubleTextStyle), + singleTextStyle: _singleTextStyle?.merge(other._singleTextStyle), + doubleTextStyle: _doubleTextStyle?.merge(other._doubleTextStyle), singleMinWidth: other._singleMinWidth, doubleMinWidth: other._doubleMinWidth, ); diff --git a/lib/src/theme/configs/brn_action_sheet_config.dart b/lib/src/theme/configs/brn_action_sheet_config.dart index 2fcb685c..3b48600b 100644 --- a/lib/src/theme/configs/brn_action_sheet_config.dart +++ b/lib/src/theme/configs/brn_action_sheet_config.dart @@ -260,15 +260,15 @@ class BrnActionSheetConfig extends BrnBaseConfig { BrnActionSheetConfig merge(BrnActionSheetConfig? other) { if (other == null) return this; return copyWith( - titleStyle: titleStyle.merge(other._titleStyle), - itemTitleStyle: itemTitleStyle.merge(other._itemTitleStyle), - itemTitleStyleLink: itemTitleStyleLink.merge(other._itemTitleStyleLink), + titleStyle: _titleStyle?.merge(other._titleStyle), + itemTitleStyle: _itemTitleStyle?.merge(other._itemTitleStyle), + itemTitleStyleLink: _itemTitleStyleLink?.merge(other._itemTitleStyleLink), itemTitleStyleAlert: - itemTitleStyleAlert.merge(other._itemTitleStyleAlert), - itemDescStyle: itemDescStyle.merge(other._itemDescStyle), - itemDescStyleLink: itemDescStyleLink.merge(other._itemDescStyleLink), - itemDescStyleAlert: itemDescStyleAlert.merge(other._itemDescStyleAlert), - cancelStyle: cancelStyle.merge(other._cancelStyle), + _itemTitleStyleAlert?.merge(other._itemTitleStyleAlert), + itemDescStyle: _itemDescStyle?.merge(other._itemDescStyle), + itemDescStyleLink: _itemDescStyleLink?.merge(other._itemDescStyleLink), + itemDescStyleAlert: _itemDescStyleAlert?.merge(other._itemDescStyleAlert), + cancelStyle: _cancelStyle?.merge(other._cancelStyle), topRadius: other._topRadius, contentPadding: other._contentPadding, titlePadding: other._titlePadding, diff --git a/lib/src/theme/configs/brn_appbar_config.dart b/lib/src/theme/configs/brn_appbar_config.dart index a92b8f3e..fa2824ce 100644 --- a/lib/src/theme/configs/brn_appbar_config.dart +++ b/lib/src/theme/configs/brn_appbar_config.dart @@ -271,8 +271,8 @@ class BrnAppBarConfig extends BrnBaseConfig { backgroundColor: other._backgroundColor, appBarHeight: other._appBarHeight, leadIconBuilder: other._leadIconBuilder, - titleStyle: titleStyle.merge(other._titleStyle), - actionsStyle: actionsStyle.merge(other._actionsStyle), + titleStyle: _titleStyle?.merge(other._titleStyle), + actionsStyle: _actionsStyle?.merge(other._actionsStyle), titleMaxLength: other._titleMaxLength, leftAndRightPadding: other._leftAndRightPadding, itemSpacing: other._itemSpacing, diff --git a/lib/src/theme/configs/brn_card_title_config.dart b/lib/src/theme/configs/brn_card_title_config.dart index 2d95fa42..3206132d 100644 --- a/lib/src/theme/configs/brn_card_title_config.dart +++ b/lib/src/theme/configs/brn_card_title_config.dart @@ -200,11 +200,11 @@ class BrnCardTitleConfig extends BrnBaseConfig { return copyWith( cardTitlePadding: other._cardTitlePadding, titleWithHeightTextStyle: - titleWithHeightTextStyle.merge(other._titleWithHeightTextStyle), - titleTextStyle: titleTextStyle.merge(other._titleTextStyle), - subtitleTextStyle: subtitleTextStyle.merge(other._subtitleTextStyle), - detailTextStyle: detailTextStyle.merge(other._detailTextStyle), - accessoryTextStyle: accessoryTextStyle.merge(other._accessoryTextStyle), + _titleWithHeightTextStyle?.merge(other._titleWithHeightTextStyle), + titleTextStyle: _titleTextStyle?.merge(other._titleTextStyle), + subtitleTextStyle: _subtitleTextStyle?.merge(other._subtitleTextStyle), + detailTextStyle: _detailTextStyle?.merge(other._detailTextStyle), + accessoryTextStyle: _accessoryTextStyle?.merge(other._accessoryTextStyle), alignment: other._alignment, cardBackgroundColor: other._cardBackgroundColor, ); diff --git a/lib/src/theme/configs/brn_dialog_config.dart b/lib/src/theme/configs/brn_dialog_config.dart index cab28d71..13ac16fe 100644 --- a/lib/src/theme/configs/brn_dialog_config.dart +++ b/lib/src/theme/configs/brn_dialog_config.dart @@ -447,21 +447,21 @@ class BrnDialogConfig extends BrnBaseConfig { iconPadding: other._iconPadding, titlePaddingSm: other._titlePaddingSm, titlePaddingLg: other._titlePaddingLg, - titleTextStyle: titleTextStyle.merge(other._titleTextStyle), + titleTextStyle: _titleTextStyle?.merge(other._titleTextStyle), titleTextAlign: other._titleTextAlign, contentPaddingSm: other._contentPaddingSm, contentPaddingLg: other._contentPaddingLg, - contentTextStyle: contentTextStyle.merge(other._contentTextStyle), + contentTextStyle: _contentTextStyle?.merge(other._contentTextStyle), contentTextAlign: other._contentTextAlign, warningPaddingSm: other._warningPaddingSm, warningPaddingLg: other._warningPaddingLg, - warningTextStyle: warningTextStyle.merge(other._warningTextStyle), + warningTextStyle: _warningTextStyle?.merge(other._warningTextStyle), warningTextAlign: other._warningTextAlign, dividerPadding: other._dividerPadding, mainActionTextStyle: - mainActionTextStyle.merge(other._mainActionTextStyle), + _mainActionTextStyle?.merge(other._mainActionTextStyle), assistActionsTextStyle: - assistActionsTextStyle.merge(other._assistActionsTextStyle), + _assistActionsTextStyle?.merge(other._assistActionsTextStyle), mainActionBackgroundColor: other._mainActionBackgroundColor, assistActionsBackgroundColor: other._assistActionsBackgroundColor, bottomHeight: other._bottomHeight, diff --git a/lib/src/theme/configs/brn_enhance_number_card_config.dart b/lib/src/theme/configs/brn_enhance_number_card_config.dart index 33881eb1..fe51a1ad 100644 --- a/lib/src/theme/configs/brn_enhance_number_card_config.dart +++ b/lib/src/theme/configs/brn_enhance_number_card_config.dart @@ -100,8 +100,8 @@ class BrnEnhanceNumberCardConfig extends BrnBaseConfig { runningSpace: other._runningSpace, itemRunningSpace: other._itemRunningSpace, dividerWidth: other._dividerWidth, - titleTextStyle: titleTextStyle.merge(other._titleTextStyle), - descTextStyle: descTextStyle.merge(other._descTextStyle), + titleTextStyle: _titleTextStyle?.merge(other._titleTextStyle), + descTextStyle: _descTextStyle?.merge(other._descTextStyle), ); } } diff --git a/lib/src/theme/configs/brn_form_config.dart b/lib/src/theme/configs/brn_form_config.dart index 2c0640da..62c90b7c 100644 --- a/lib/src/theme/configs/brn_form_config.dart +++ b/lib/src/theme/configs/brn_form_config.dart @@ -393,23 +393,23 @@ class BrnFormItemConfig extends BrnBaseConfig { if (other == null) return this; return copyWith( backgroundColor: other._backgroundColor, - titleTextStyle: titleTextStyle.merge(other._titleTextStyle), - subTitleTextStyle: subTitleTextStyle.merge(other._subTitleTextStyle), - errorTextStyle: errorTextStyle.merge(other._errorTextStyle), - hintTextStyle: hintTextStyle.merge(other._hintTextStyle), - contentTextStyle: contentTextStyle.merge(other._contentTextStyle), + titleTextStyle: _titleTextStyle?.merge(other._titleTextStyle), + subTitleTextStyle: _subTitleTextStyle?.merge(other._subTitleTextStyle), + errorTextStyle: _errorTextStyle?.merge(other._errorTextStyle), + hintTextStyle: _hintTextStyle?.merge(other._hintTextStyle), + contentTextStyle: _contentTextStyle?.merge(other._contentTextStyle), formPadding: other._formPadding, titlePaddingSm: other._titlePaddingSm, titlePaddingLg: other._titlePaddingLg, optionsMiddlePadding: other._optionsMiddlePadding, subTitlePadding: other._subTitlePadding, errorPadding: other._errorPadding, - disableTextStyle: disableTextStyle.merge(other._disableTextStyle), - tipsTextStyle: tipsTextStyle.merge(other._tipsTextStyle), - headTitleTextStyle: headTitleTextStyle.merge(other._headTitleTextStyle), - optionTextStyle: optionTextStyle.merge(other._optionTextStyle), + disableTextStyle: _disableTextStyle?.merge(other._disableTextStyle), + tipsTextStyle: _tipsTextStyle?.merge(other._tipsTextStyle), + headTitleTextStyle: _headTitleTextStyle?.merge(other._headTitleTextStyle), + optionTextStyle: _optionTextStyle?.merge(other._optionTextStyle), optionSelectedTextStyle: - optionSelectedTextStyle.merge(other._optionSelectedTextStyle), + _optionSelectedTextStyle?.merge(other._optionSelectedTextStyle), ); } } diff --git a/lib/src/theme/configs/brn_gallery_detail_config.dart b/lib/src/theme/configs/brn_gallery_detail_config.dart index 60cd9244..fe0ecc26 100644 --- a/lib/src/theme/configs/brn_gallery_detail_config.dart +++ b/lib/src/theme/configs/brn_gallery_detail_config.dart @@ -321,19 +321,19 @@ class BrnGalleryDetailConfig extends BrnBaseConfig { BrnGalleryDetailConfig merge(BrnGalleryDetailConfig? other) { if (other == null) return this; return copyWith( - appbarTitleStyle: appbarTitleStyle.merge(other._appbarTitleStyle), - appbarActionStyle: appbarActionStyle.merge(other._appbarActionStyle), + appbarTitleStyle: _appbarTitleStyle?.merge(other._appbarTitleStyle), + appbarActionStyle: _appbarActionStyle?.merge(other._appbarActionStyle), appbarBackgroundColor: other._appbarBackgroundColor, appbarConfig: other._appbarConfig, tabBarUnSelectedLabelStyle: - tabBarUnSelectedLabelStyle.merge(other._tabBarUnSelectedLabelStyle), - tabBarLabelStyle: tabBarLabelStyle.merge(other._tabBarLabelStyle), + _tabBarUnSelectedLabelStyle?.merge(other._tabBarUnSelectedLabelStyle), + tabBarLabelStyle: _tabBarLabelStyle?.merge(other._tabBarLabelStyle), tabBarBackgroundColor: other._tabBarBackgroundColor, pageBackgroundColor: other._pageBackgroundColor, bottomBackgroundColor: other._bottomBackgroundColor, - titleStyle: titleStyle.merge(other._titleStyle), - contentStyle: contentStyle.merge(other._contentStyle), - actionStyle: actionStyle.merge(other._actionStyle), + titleStyle: _titleStyle?.merge(other._titleStyle), + contentStyle: _contentStyle?.merge(other._contentStyle), + actionStyle: _actionStyle?.merge(other._actionStyle), iconColor: other._iconColor, ); } diff --git a/lib/src/theme/configs/brn_pair_info_config.dart b/lib/src/theme/configs/brn_pair_info_config.dart index ca9f0e38..961d4840 100644 --- a/lib/src/theme/configs/brn_pair_info_config.dart +++ b/lib/src/theme/configs/brn_pair_info_config.dart @@ -283,9 +283,9 @@ class BrnPairRichInfoGridConfig extends BrnBaseConfig { rowSpacing: other._rowSpacing, itemSpacing: other._itemSpacing, itemHeight: other._itemHeight, - keyTextStyle: keyTextStyle.merge(other._keyTextStyle), - valueTextStyle: valueTextStyle.merge(other._valueTextStyle), - linkTextStyle: linkTextStyle.merge(other._linkTextStyle), + keyTextStyle: _keyTextStyle?.merge(other._keyTextStyle), + valueTextStyle: _valueTextStyle?.merge(other._valueTextStyle), + linkTextStyle: _linkTextStyle?.merge(other._linkTextStyle), ); } } diff --git a/lib/src/theme/configs/brn_picker_config.dart b/lib/src/theme/configs/brn_picker_config.dart index 92b903ba..156b3f24 100644 --- a/lib/src/theme/configs/brn_picker_config.dart +++ b/lib/src/theme/configs/brn_picker_config.dart @@ -221,15 +221,15 @@ class BrnPickerConfig extends BrnBaseConfig { if (other == null) return this; return copyWith( backgroundColor: other._backgroundColor, - cancelTextStyle: cancelTextStyle.merge(other._cancelTextStyle), - confirmTextStyle: confirmTextStyle.merge(other._confirmTextStyle), - titleTextStyle: titleTextStyle.merge(other._titleTextStyle), + cancelTextStyle: _cancelTextStyle?.merge(other._cancelTextStyle), + confirmTextStyle: _confirmTextStyle?.merge(other._confirmTextStyle), + titleTextStyle: _titleTextStyle?.merge(other._titleTextStyle), pickerHeight: other._pickerHeight, titleHeight: other._titleHeight, itemHeight: other._itemHeight, - itemTextStyle: itemTextStyle.merge(other._itemTextStyle), + itemTextStyle: _itemTextStyle?.merge(other._itemTextStyle), itemTextSelectedStyle: - itemTextSelectedStyle.merge(other._itemTextSelectedStyle), + _itemTextSelectedStyle?.merge(other._itemTextSelectedStyle), dividerColor: other._dividerColor, cornerRadius: other._cornerRadius, ); diff --git a/lib/src/theme/configs/brn_selection_config.dart b/lib/src/theme/configs/brn_selection_config.dart index cec3c9e8..72b8e25c 100644 --- a/lib/src/theme/configs/brn_selection_config.dart +++ b/lib/src/theme/configs/brn_selection_config.dart @@ -540,41 +540,41 @@ class BrnSelectionConfig extends BrnBaseConfig { BrnSelectionConfig merge(BrnSelectionConfig other) { return copyWith( menuNormalTextStyle: - menuNormalTextStyle.merge(other._menuNormalTextStyle), + _menuNormalTextStyle?.merge(other._menuNormalTextStyle), menuSelectedTextStyle: - menuSelectedTextStyle.merge(other._menuSelectedTextStyle), + _menuSelectedTextStyle?.merge(other._menuSelectedTextStyle), tagTextStyle: tagNormalTextStyle.merge(other._tagNormalTextStyle), tagSelectedTextStyle: - tagSelectedTextStyle.merge(other._tagSelectedTextStyle), + _tagSelectedTextStyle?.merge(other._tagSelectedTextStyle), tagRadius: other._tagRadius, tagBackgroundColor: other._tagNormalBackgroundColor, tagSelectedBackgroundColor: other._tagSelectedBackgroundColor, - hintTextStyle: hintTextStyle.merge(other._hintTextStyle), + hintTextStyle: _hintTextStyle?.merge(other._hintTextStyle), rangeTitleTextStyle: - rangeTitleTextStyle.merge(other._rangeTitleTextStyle), - inputTextStyle: inputTextStyle.merge(other._inputTextStyle), + _rangeTitleTextStyle?.merge(other._rangeTitleTextStyle), + inputTextStyle: _inputTextStyle?.merge(other._inputTextStyle), itemNormalTextStyle: - itemNormalTextStyle.merge(other._itemNormalTextStyle), + _itemNormalTextStyle?.merge(other._itemNormalTextStyle), itemSelectedTextStyle: - itemSelectedTextStyle.merge(other._itemSelectedTextStyle), - itemBoldTextStyle: itemBoldTextStyle.merge(other._itemBoldTextStyle), + _itemSelectedTextStyle?.merge(other._itemSelectedTextStyle), + itemBoldTextStyle: _itemBoldTextStyle?.merge(other._itemBoldTextStyle), deepNormalBgColor: other._deepNormalBgColor, deepSelectBgColor: other._deepSelectBgColor, middleNormalBgColor: other._middleNormalBgColor, middleSelectBgColor: other._middleSelectBgColor, lightNormalBgColor: other._lightNormalBgColor, lightSelectBgColor: other._lightSelectBgColor, - resetTextStyle: resetTextStyle.merge(other._resetTextStyle), + resetTextStyle: _resetTextStyle?.merge(other._resetTextStyle), titleForMoreTextStyle: - titleForMoreTextStyle.merge(other._titleForMoreTextStyle), - optionTextStyle: optionTextStyle.merge(other._optionTextStyle), - moreTextStyle: moreTextStyle.merge(other._moreTextStyle), + _titleForMoreTextStyle?.merge(other._titleForMoreTextStyle), + optionTextStyle: _optionTextStyle?.merge(other._optionTextStyle), + moreTextStyle: _moreTextStyle?.merge(other._moreTextStyle), flayerNormalTextStyle: - flayerNormalTextStyle.merge(other._flayerNormalTextStyle), + _flayerNormalTextStyle?.merge(other._flayerNormalTextStyle), flayerSelectedTextStyle: - flayerSelectedTextStyle.merge(other._flayerSelectedTextStyle), + _flayerSelectedTextStyle?.merge(other._flayerSelectedTextStyle), flayerBoldTextStyle: - flayerBoldTextStyle.merge(other._flayerBoldTextStyle), + _flayerBoldTextStyle?.merge(other._flayerBoldTextStyle), ); } } diff --git a/lib/src/theme/configs/brn_tabbar_config.dart b/lib/src/theme/configs/brn_tabbar_config.dart index cfb42f64..ac68223c 100644 --- a/lib/src/theme/configs/brn_tabbar_config.dart +++ b/lib/src/theme/configs/brn_tabbar_config.dart @@ -254,14 +254,14 @@ class BrnTabBarConfig extends BrnBaseConfig { tabHeight: other._tabHeight, indicatorHeight: other._indicatorHeight, indicatorWidth: other._indicatorWidth, - labelStyle: labelStyle.merge(other._labelStyle), + labelStyle: _labelStyle?.merge(other._labelStyle), unselectedLabelStyle: - unselectedLabelStyle.merge(other._unselectedLabelStyle), + _unselectedLabelStyle?.merge(other._unselectedLabelStyle), backgroundColor: other._backgroundColor, - tagNormalTextStyle: tagNormalTextStyle.merge(other._tagNormalTextStyle), + tagNormalTextStyle: _tagNormalTextStyle?.merge(other._tagNormalTextStyle), tagNormalColor: other._tagNormalBgColor, tagSelectedTextStyle: - tagSelectedTextStyle.merge(other._tagSelectedTextStyle), + _tagSelectedTextStyle?.merge(other._tagSelectedTextStyle), tagSelectedColor: other._tagSelectedBgColor, tagRadius: other._tagRadius, tagSpacing: other._tagSpacing, diff --git a/lib/src/theme/configs/brn_tag_config.dart b/lib/src/theme/configs/brn_tag_config.dart index 6af4dae1..88127799 100644 --- a/lib/src/theme/configs/brn_tag_config.dart +++ b/lib/src/theme/configs/brn_tag_config.dart @@ -155,8 +155,8 @@ class BrnTagConfig extends BrnBaseConfig { BrnTagConfig merge(BrnTagConfig? other) { if (other == null) return this; return copyWith( - textStyle: tagTextStyle.merge(other._tagTextStyle), - selectTextStyle: selectTagTextStyle.merge(other._selectTagTextStyle), + textStyle: _tagTextStyle?.merge(other._tagTextStyle), + selectTextStyle: _selectTagTextStyle?.merge(other._selectTagTextStyle), radius: other._tagRadius, backgroundColor: other._tagBackgroundColor, selectedBackgroundColor: other._selectedTagBackgroundColor, diff --git a/pubspec.yaml b/pubspec.yaml index 94e59b8a..2bcbccf8 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -12,12 +12,12 @@ environment: dependencies: flutter: sdk: flutter - xml: ^6.1.0 + xml: ^6.5.0 lpinyin: ^2.0.3 path_drawing: ^1.0.0 flutter_easyrefresh: ^2.2.1 - intl: ^0.18.0 - photo_view: ^0.14.0 + intl: ^0.19.0 + photo_view: ^0.15.0 bindings_compatible: ^1.0.1 dev_dependencies: