tdesign_flutter
Tencent TDesign UI component library of Flutter, suitable for use in mobile projects.
0.2.7
2.6K downloads/mo
#4865 most downloaded on pub.dev
Tencent/tdesign-flutter
What this package is like to depend on
Last release 24 days ago
31 Jul 2026
Ships fairly regularly
a new release about every 2 months
Nearly every release is documented
notes for 25 of 25 stable releases
2 versions withdrawn
withdrawn after publishing
3 years old
28 releases · first in 2023
4 releases in the last 12 months
see the full history below
Release timeline
28 releases · Nov 2023 to Jul 2026Releases
latest 28-
1.0.0-alpha.131 Jul 2026 pre-releaseRelease notes
Open source →TDesign Flutter v1 迁移指南
0.2.7→1.0.0-alpha.1·main@36af3143→develop@1f527212Warning
Alpha 期间 API 和视觉仍可能调整,请锁定精确版本。
升级前必读
environment: sdk: ">=3.8.0 <4.0.0" flutter: ">=3.32.0" dependencies: tdesign_flutter: 1.0.0-alpha.1
- 统一从
package:tdesign_flutter/tdesign_flutter.dart导入;不要深层导入lib/src。 - 公开类从
TD*改为T*,无 v0 兼容层;TDIcons.*改为TIcons.*。 - 选择类组件更多改为受控模式;Picker、Calendar、Cascader 的标题、确认和 Popup 由业务组合。
统一控制契约
范围 用户要做的事 受控状态 value是唯一真值,在onChanged中回写;部分组件无回调即禁用Controller 谁创建谁释放;不在 build中创建;同一 Controller 不绑定多个组件Overlay 从目标 Theme/Navigator 子树的 context 调用;异步前检查 mounted;按需设置useRootNavigator应用样式 Token 通过 TThemeBuilder.light/dark接入组件样式 全局/局部使用对应 T*ThemeData,局部覆盖使用mergeExtension单实例样式 使用显式参数或 Flutter 标准样式对象;内容使用 Widget 槽位/builder 实例显式参数 > 组件 ThemeData > 用户显式设置的 Flutter 子树主题 > 用户显式设置的 Material 主题 > TDesign TokenFlutter/M3 隐式默认值不参与解析。禁止用
copyWith(extensions: [...])覆盖整个扩展列表,也不要把数据、内容、回调或 Controller 放入 ThemeData。组件速查
高:需重写调用;中:需调整参数/状态;低:主要是改名/主题迁移。下表不重复列出通用的
TD* → T*。组件 风险 迁移动作 ActionSheet 中 重建 item/分组;样式转 TActionSheetThemeDataAvatar 中 换用图片/文字/图标槽位 BackTop 低 替换形状枚举与 ThemeData Badge 中 使用 label、variant、child;按需设showZeroButton 高 text/onTap/disabled改为child/onPressed/null。单例样式用ButtonStyle,公共样式用TButtonThemeDataCalendar 高 时间戳 List<int>改为List<DateTime>受控值,内建 Popup/时间选择移除。业务需回写value,并自行组合标题和确认操作Cascader 高 List<Map>改为TCascaderOption树,组件改为严格受控。业务需维护并回写选中路径Cell 中 TDCellStyle转槽位和TCellThemeDataCheckbox 中 回写受控值;替换尺寸/内容 builder Collapse 中 回写展开值;样式转 TCollapseThemeDataDateTimePicker 高 TDDatePicker/TDPicker.showDatePicker改为纯选择的TDateTimePicker。用mode/value/start/end/steps表达列与边界,弹层/确认外置Dialog 高 Input/Image/Alert 等多套类型统一为 TDialog+TDialogAction。输入、图片和自定义内容改用 Widget 槽位Divider 低 替换 layout/align 枚举与 ThemeData Drawer 中 替换 placement/item 回调;回归安全区 DropdownMenu 高 旧内建选项模型改为 item + panel builder。业务自行管理面板草稿、确认和取消状态 Empty 低 替换 variant;图片/操作用槽位 FAB 中 样式转 TFabThemeData;回归拖拽边界Footer 低 替换 variant 和链接槽位 Form 高 TDFormValidation改为TFormRule,FormItem 值与 builder 契约调整。需重接校验时机和错误展示Icon 高 TDIcons.*改TIcons.*;不再依赖主包图标字体Image 中 替换 variant 和加载/失败槽位 ImageViewer 高 移除对旧 Swiper 的参数透传。改用 itemBuilder/新页码回调,回归动态数据和关闭生命周期 Indexes 中 替换索引/锚点类型;回归滚动 Input 中 保留业务 controller/focusNode;公共样式转 ThemeData Link 中 替换配色/尺寸/变体;内容用槽位 Loading 中 替换 size/icon 枚举;样式转 ThemeData Message 高 移除 MessageLink/MessageMarquee;内容改用 WidgetNavBar 中 替换 item action;回归安全区/边框 NoticeBar 中 移除 Style 类;样式转 ThemeData,点击用 tap target Picker 高 旧 MultiPicker/ TDPicker.show*改为TPickerOption+ columns/linked 受控模型。header、取消、确认和 Popup 由业务组合Popover 中 替换 placement/回调;样式转 ThemeData Popup 高 旧 Panel/Route 入口统一为 TPopupOptions+TPopupHandle。top/bottom 默认高 240,left/right 默认宽 280,center 默认 240×240,显式尺寸优先Progress 中 替换 variant/labelPosition;回归 button/micro 事件 Radio 中 回写受控值;替换尺寸/内容 builder Rate 中 回写分值;自定义图标改用 builder Refresh 低 替换类型名与 ThemeData Result 低 替换 variant;图标/标题/操作用槽位 Search 中 重接输入回调;公共样式转 ThemeData SideBar 中 移除旧 Controller;改用受控选中值 Skeleton 高 RowCol 旧类型改为 TSkeletonLayout/Block,delay改为Duration。可使用预设 variant 或重建 block 布局Slider 中 替换单值/区间值契约;回写受控值 Stepper 中 替换 size/variant;按新 value/callback 迁移 Steps 中 替换 item/direction/status 类型 SwipeCell 高 左右 Widget 参数改为 panel/action/side/motion 模型。需重建操作列表并处理开关状态回调 Swiper 高 移除旧第三方 Swiper 透传,改为自有 TSwiper。需迁移 Controller、autoplay、pagination 和 pageEffectSwitch 中 回写 value;样式转TSwitchThemeDataTabBar 高 TDBottomTabBar*改TTabBar*;重建 item/variant/badgeTable 高 TDTableCol/Empty改为泛型列与 Widget 空态。业务需回写排序和选择状态Tabs 高 改用 TTabsBar/TTabsBarView/TTab。需同步 controller/index,并回归 Tab 与 View 联动Tag 中 移除 Style 类;样式转 ThemeData,回写选中态 Text 中 替换 Text/Span/Configuration;回归文本继承 Textarea 中 保留业务 controller/focusNode;样式转 ThemeData Theme 高 应用入口用 TThemeBuilder;局部覆盖用mergeExtensionTimeCounter 高 改用 status/builder/新 Controller;由创建方释放 Toast 高 替换 show/close 与图文方向;使用正确 context TreeSelect 高 重建选项数据和受控值;回归动态更新 Upload 高 转换文件/状态模型和回调;回归权限/失败流程 验收
先处理高风险组件,再在深浅色、窄屏、大字号、RTL、键盘、系统返回和动态数据下回归。
详细迁移指南将在后续文档列出。
- 统一从
-
0.2.721 Jan 2026Release notes
Open source →🌈 0.2.7
🚀 Features
TDInput: TDInput密文模式下支持粘贴 @jflin19990707 (#827)
TDDropdownMenu: TDDropdownMenu的arrowIcon颜色可自定义 @jflin19990707 (#831)
TDInput: TDInput高度自适应 @jflin19990707 (#840)
TDCalendar: 允许月历控件在拖动后返回当前月份,用于延迟加载月份改变数据 @rxnh8256 (#816)
TDActionSheetItem: 支持设置cell描述信息的能力 @leenc123 (#811)
TDBottomTabBar: tabbar新增indicatorAnimation动画属性 @journeyding (#848)🐞 Bug Fixes
TDPopup: 底部弹出popup重绘问题 @jflin19990707 (#826)
TDropdownMenu: TDropdownMenu分组菜单多选模式下的返回值bug @jflin19990707 (#828)
TDTable: TDTable中TDTableCol的索引BUG @jflin19990707 (#830)
TDTreeSelect: 树形选择器异步数据更新后能重新渲染;二级菜单文字过长处理一下;TDSelectOption中的value改为dynamic类型 @jflin19990707 (#834)
TDToast: TDToast过长溢出问题 @jflin19990707 (#839)
TDDropdownItem: TDDropdownItem不兼容TDMultiCascader @jflin19990707 (#846)
TDCalendar: 自定义日期单元格组件移除padding,使之沾满并覆盖默认选中样式从而实现自定义选中以及当前日期的样式问题,并增加日期锚点属性来实现自动滚动到锚点位置 @leenc123 (#808)
DropdownMenu: 修复 item 的 label 过长时导致显示不完全的 bug @edram (#823)
TDRadio、TDCheckbox: 单选框、多选框多列展示问题 @jflin19990707 (#841)
TDNavBar: 优化标题栏返回图标 支持暗黑模式 @sinianbao (#844)Release notes
Open source →🚀 Features
TDInput: TDInput密文模式下支持粘贴 @jflin19990707 (#827)TDDropdownMenu: TDDropdownMenu的arrowIcon颜色可自定义 @jflin19990707 (#831)TDInput: TDInput高度自适应 @jflin19990707 (#840)TDCalendar: 允许月历控件在拖动后返回当前月份,用于延迟加载月份改变数据 @rxnh8256 (#816)TDActionSheetItem: 支持设置cell描述信息的能力 @leenc123 (#811)TDBottomTabBar: tabbar新增indicatorAnimation动画属性 @journeyding (#848)
🐞 Bug Fixes
TDPopup: 底部弹出popup重绘问题 @jflin19990707 (#826)TDropdownMenu: TDropdownMenu分组菜单多选模式下的返回值bug @jflin19990707 (#828)TDTable: TDTable中TDTableCol的索引BUG @jflin19990707 (#830)TDTreeSelect: 树形选择器异步数据更新后能重新渲染;二级菜单文字过长处理一下;TDSelectOption中的value改为dynamic类型 @jflin19990707 (#834)TDToast: TDToast过长溢出问题 @jflin19990707 (#839)TDDropdownItem: TDDropdownItem不兼容TDMultiCascader @jflin19990707 (#846)TDCalendar: 自定义日期单元格组件移除padding,使之沾满并覆盖默认选中样式从而实现自定义选中以及当前日期的样式问题,并增加日期锚点属性来实现自动滚动到锚点位置 @leenc123 (#808)DropdownMenu: 修复 item 的 label 过长时导致显示不完全的 bug @edram (#823)TDRadio、TDCheckbox: 单选框、多选框多列展示问题 @jflin19990707 (#841)TDNavBar: 优化标题栏返回图标 支持暗黑模式 @sinianbao (#844)
🚧 Others
- docs: 更新主题生成器文档,添加视频演示链接 @RSS1102 (#833)
-
0.2.614 Nov 2025Release notes
Open source →🌈 0.2.6
2025-11-14🚀 Features
TDNoticeBar: 新增content属性,废弃并兼容原有的context属性 @runoob-coder (#744)TDButton: 添加渐变颜色背景 @jflin19990707 (#773)TDToast: TDToast支持展示多个 @jflin19990707 (#780)TDUpload: 增加自定义上传监听 @leenc123 (#775)TDTable: 增加自定义表尾属性 @leenc123 (#776)
🐞 Bug Fixes
TDMultiCascader: 修复initialIndexes 参数不生效 @epoll-j (#752)TDDialog: 按钮文案溢出问题 @jflin19990707 (#772)TDDateTimePicker: 日期时分秒的英文配置改为缩写 @jflin19990707 (#770)TDCell: TDCell的note过长时溢出问题 @jflin19990707 (#769)TDCell: 修复单元格内 icon 与文本的对齐问题 @runoob-coder (#789)TDProgress: 修复进度条改变时的样式问题 @runoob-coder (#744)
📝 Documentation
docs: 优化文档格式和内容 @runoob-coder (#744)
🚧 Others
- 组件全面适配深色模式,优化调整组件样式(实验版) @runoob-coder (#744)
demo: 优化调整demo示例项目及代码演示,升级 Android 构建配置和依赖项以兼容在flutter3.16.9至最新版(3.35.5)下运行,调整web预览iframe样式去除顶部边距 @runoob-coder (#744)web: 覆盖web依赖项,解决与flutter_localizations的版本冲突问题,兼容flutter之前版本 @runoob-coder (#744)
Release notes
Open source →🚀 Features
TDNoticeBar: Addedcontentproperty, deprecated and compatible with the original context property @runoob-coder (#744)TDButton: Added gradient color background @jflin19990707 (#773)TDToast: TDToast supports displaying multiple toasts @jflin19990707 (#780)TDUpload: Added custom upload listener @leenc123 (#775)TDTable: Added custom footer property @leenc123 (#776)
🐞 Bug Fixes
TDMultiCascader: Fixed initialIndexes parameter not taking effect @epoll-j (#752)TDDialog: Fixed button text overflow issue @jflin19990707 (#772)TDDateTimePicker: Changed English configuration for date, hour, minute, second to abbreviations @jflin19990707 (#770)TDCell: Fixed overflow issue when note is too long @jflin19990707 (#769)TDCell: Fixed alignment issue between icon and text in the cell @runoob-coder (#789)TDProgress: Fixed style issue when progress bar changes @runoob-coder (#744)
📝 Documentation
docs: Optimized document format and content @runoob-coder (#744)
🚧 Others
- Components fully adapted to dark mode, optimized and adjusted component styles (experimental version) @runoob-coder (#744)
demo: Optimized and adjusted demo example project and code demonstrations, upgraded Android build configuration and dependencies to be compatible with Flutter from3.16.9to the latest version (3.35.5), adjusted web preview iframe style to remove top margin @runoob-coder (#744)web: Overridden web dependencies, resolved version conflict with flutter_localizations, compatible with previous Flutter versions @runoob-coder (#744)
-
0.2.517 Sep 2025Release notes
Open source →🌈 0.2.5
2025-09-12🐞 Bug Fixes
TDPopover: 添加圆角属性自定义 @jflin19990707 (#727)TDForm: 增加表单自定义背景颜色属性,按钮部分可为空 @jflin19990707 (#730)TDConfirmDialog: 弹窗支持自定义宽度,按钮增加自定义样式属性 @jflin19990707 (#724)TDPicker: 支持初始化和后续动态加载适量数据,修复卡顿问题@123dw-bot(#728)TDSideBar增加自定义未选中颜色 @jflin19990707 (#723)
🚧 Others
- docs: 优化仓库大小 @RSS1102
Release notes
Open source →🐞 Bug Fixes
TDPopover: Added custom corner radius property @jflin19990707 (#727)TDForm: Added custom background color property for form, button part can be optional @jflin19990707 (#730)TDConfirmDialog: Dialog supports custom width, buttons added custom style properties @jflin19990707 (#724)TDPicker: Supports initialization and subsequent dynamic loading of appropriate data, fixes stuttering issues @123dw-bot (#728)TDSideBar: Added custom unselected color property @jflin19990707 (#723)
🚧 Others
- docs: Optimized repository size @RSS1102
-
0.2.414 Aug 2025Release notes
Open source →🌈 0.2.4
2025-08-14🚀 Features
TDUpload: 支持设置多图间距和对其方式 @CyJaySong (#677)TDTreeSelect: 新增自定义宽度和最大行数字段,修复第二级宽度固定,长文本溢出问题 @123dw-bot (#694)TDDropdownMenu: 增加TDDropdownItemController,允许外部重置和更改下拉选项 @Luozf12345 (#697)TDStepper:Stepper增加controller参数,可用于实时修改value @Luozf12345 (#699)
🐞 Bug Fixes
TDIndexes: 修复自定义索引无法响应点击事件 @epoll-j (#692)TDPopup: 修复close方法触发两次bug @epoll-j (#690)TDSideBar:修复TDSideBar组件初始化后children无法更新的问题 @Luozf12345 (#698)
🚧 Others
其他:恢复对flutter SDK 3.32版本的默认适配
Release notes
Open source →🚀 Features
TDUpload: Support setting image spacing and alignment @cyjaysong (#677)TDTreeSelect: Added custom width and max lines fields, fixed fixed width for second level and long text overflow issues @123dw-bot (#694)TDDropdownMenu: Added TDDropdownItemController to allow external reset and change of dropdown options @Luozf12345 (#697)TDStepper: Added controller parameter to Stepper for real-time value modification @Luozf12345 (#699)
🐞 Bug Fixes
TDIndexes: Fixed issue where custom indexes could not respond to click events @epoll-j (#692)TDPopup: Fixed bug where close method was triggered twice @epoll-j (#690)TDSideBar: Fixed issue where children of TDSideBar component could not be updated after initialization @Luozf12345 (#698)
🚧 Others
Misc: Restored default adaptation for flutter SDK version 3.32
-
0.2.310 Jul 2025Release notes
Open source →🌈 0.2.3
2025-07-09🚀 Features
TDPicker: 支持切换时优先保持级联的选项值 @epoll-j (#666)TDTable: 支持行默认选中 @ccXxx1aoBai (#665)TDCalendar: 增加自定义日期单元格功能 @epoll-j (#667)TDForm: 增加Form 表单组件 @shizhe2018 @SimonWuZY (#620)TDTable: TDTableCol属性配置分离,空数据配置分离 @ccXxx1aoBai (#665)
🐞 Bug Fixes
TDTable: 解决表头未选中图标显示问题,禁用状态下全选选中状态问题 @ccXxx1aoBai (#665)TDTable: 表格空数据问题 @ccXxx1aoBai (#671)TDDialog: 弹窗遮挡键盘问题 @jflin19990707 (#669)TDCollapse: collapse demo页面名称修改 @jflin19990707 (#670)TDDropdownMenu: 嵌套路由场景 弹窗位置计算错误 @hcanyz (#648)
Release notes
Open source →🚀 Features
TDPicker: Supports prioritizing the retention of cascaded option values when switching @epoll-j (#666)TDTable: Supports default row selection @ccXxx1aoBai (#665)TDCalendar: Adds custom date cell functionality @epoll-j (#667)TDForm: Adds Form component @shizhe2018 @SimonWuZY (#620)TDTable: Separates TDTableCol attribute configuration and empty data configuration @ccXxx1aoBai (#665)
🐞 Bug Fixes
TDTable: Fixes the issue with unselected icon display in table headers and the selection state problem under disabled conditions @ccXxx1aoBai (#665)TDTable: Fixes the empty data issue in tables @ccXxx1aoBai (#671)TDDialog: Fixes the issue where dialogs block the keyboard @jflin19990707 (#669)TDCollapse: Updates the demo page name for collapse @jflin19990707 (#670)TDDropdownMenu: Fixes the incorrect popup position calculation in nested routing scenarios @hcanyz (#648)
-
0.2.213 Jun 2025Release notes
Open source →🌈 0.2.2
2025-06-13
🚀 Features
TDTable: 支持表格行选择、自定义行高 @ccXxx1aoBai (#594)
TDTreeSelect: 支持局部多选 @epoll-j (#587)
TDCell: 支持自定义高度,底部分割线 @ccXxx1aoBai (#611)
TDNoticeBar: 支持自定义文字行数 @ccXxx1aoBai (#611)
TDBottomTabBar: TDButtonBottomTabBar 中的 onTap 支持重复点击 @epoll-j @RSS1102(#586)
TDBottomTabBar: 实现点击水波纹效果 @RSS1102 (#626)
TDAvatar 增加自定义BoxFit参数 @shizhe2018 (#633)🐞 Bug Fixes
TDDatePicker: 修复时间选择器分钟级时间数据展示问题- 优化小时、分钟、秒的选择范围计算逻辑 @epoll-j (#585)
TDSearchBar: 支持设置onTapOutside回调 @CyJaySong (#608)
TDDropdownMenu: 支持修改选中icon颜色 @jflin19990707 (#631)
TDTabBar: fix:TDBottomTabBarBasicType.iconText模式下,text icon 冲突问题 @jflin19990707 (#628)
TDEmpty: 支持操作按钮自定义样式 @jflin19990707 (#624)
TDToast: toast支持自定义文案 @jflin19990707 (#625)
TDPopup: 修改_measureChildHeight方法用于修复child无法修改弹窗高度 @Jzow (#591)
TDCascader 修改查询data数据为空状态处理 @shizhe2018 (#635)🚧 Others
[其他]适配flutter 3.32版本 @Luozf12345 (#636)Release notes
Open source →🚀 Features
TDTable: Added support for row selection and custom row height. @ccXxx1aoBai (#594)TDTreeSelect: Added partial multi-selection support. @epoll-j (#587)TDCell: Added support for custom height and bottom divider. @ccXxx1aoBai (#611)TDNoticeBar: Added support for custom number of text lines. @ccXxx1aoBai (#611)TDBottomTabBar: Made onTap in TDButtonBottomTabBar support repeated clicks. @epoll-j @RSS1102 (#586)TDBottomTabBar: Implemented tap ripple effects. @RSS1102 (#626)TDAvatar: Added custom BoxFit parameter. @shizhe2018 (#633)
🐞 Bug Fixes
TDDatePicker: Fixed minute-level time display issue and optimized hour/minute/second range calculation logic. @epoll-j (#585)TDSearchBar: Added onTapOutside callback support. @cyjaysong (#608)TDDropdownMenu: Added support for modifying selected icon color. @jflin19990707 (#631)TDTabBar: Fixed text-icon conflict in TDBottomTabBarBasicType.iconText mode. @jflin19990707 (#628)TDEmpty: Added custom styling support for action buttons. @jflin19990707 (#624)TDToast: Added custom text support for toast. @jflin19990707 (#625)TDPopup: Modified _measureChildHeight method to fix inability to adjust popup height via child component. @Jzow (#591)TDCascader: Fixed empty state handling for query data. @shizhe2018 (#635)
🚧 Others
- Adapted for Flutter 3.32 version. @Luozf12345 (#636)
-
0.2.113 Jun 2025 withdrawnNothing published for this version
-
0.2.008 May 2025Release notes
Open source →🌈 0.2.0
2025-05-08🚀 Features
TDCellGroup: 添加单元格组标题背景颜色titleBackgroundColor属性. @runoob-coder (#539)
TDLink: link参数链接对象LinkObj替换为MessageLink,调整TDLink样式,新增点击回调; @runoob-coder (#554)
TDBottomTabBar: 新增自定义标题支持到步骤条组件 @RSS1102 (#576)
TDSlider: 添加滑块点击事件 onTap @RSS1102 (#527)
TDCascader: 添加右上角"确定"按钮,支持选择任意选项 @Luozf12345
ImageViewer: 支持单张图片删除 @ccXxx1aoBai (#581)
TDPopup: 为Popup组件添加标题、左文本、右文本和关闭按钮自定义尺寸属性 @Jzow (#582)
TDBottomTabBarTabConfig: 添加长按 tab 触发事件onLongPress @RSS1102 (#580)🐞 Bug Fixes
TDFooter: 修复页脚链接模式时内容溢出问题 @runoob-coder (#554)
TDUpload: 修复文件大小限制错误 @epoll-j (#544)
TDImageViewer: 增加Swiper组件属性透传,增加点击事件及部分样式属性,支持自定义按钮 @ccXxx1aoBai (#561)
TDSlider: 修复是胶囊类型且有区间时,滑块无法拖动到边缘以及数值和刻度展示问题 @qfish (#567)
TDInput: 修复非中文标签Input框宽度计算缺陷 @Jzow (#564)
TDPopup: 修复无法通过child中的height来修改弹出层高度 @Jzow (#571)
TDDropdownMenu: 修复特定情况下的单选失效 @1jialong (#575)
TDToast: 修复Toast多行文字不生效的问题 @Luozf12345
TDPopup: 修复Popup外层没有Scaffold时展示文字有横线的问题 @Luozf12345🚧 Others
TDFooter: 重构 TDFooter 组件;将 LinkObj 类移除,直接使用 TDLink 类;移除了 isWithUnderline 参数,改为在 TDLink 中设置链接样式; @runoob-coder (#554)Release notes
Open source →🚀 Features
TDCellGroup: AddedtitleBackgroundColorproperty for cell group title background color. @runoob-coder (#539)TDLink: Replaced link parameterLinkObjwithMessageLink, adjustedTDLinkstyles, and added click callback. @runoob-coder (#554)TDBottomTabBar: Added custom title support for step bar component. @RSS1102 (#576)TDSlider: Added slider tap eventonTap. @RSS1102 (#527)TDCascader: Added "Confirm" button at top-right corner to support selecting any option. @Luozf12345ImageViewer: Added single image deletion support. @ccXxx1aoBai (#581)TDPopup: Added custom size properties for popup title, left text, right text, and close button. @Jzow (#582)TDBottomTabBarTabConfig: AddedonLongPressevent triggered by long-pressing tabs. @RSS1102 (#580)
🐞 Bug Fixes
TDFooter: Fixed content overflow issue in link mode. @runoob-coder (#554)TDUpload: Fixed file size limit error. @epoll-j (#544)TDImageViewer: Added Swiper component property passthrough, click events, and style properties; supports custom buttons. @ccXxx1aoBai (#561)TDSlider: Fixed edge drag failure and value/scale display issues in capsule type with range. @qfish (#567)TDInput: Fixed width calculation defect for non-Chinese label input fields. @Jzow (#564)TDPopup: Fixed inability to modify popup height viaheightin child component. @Jzow (#571)TDDropdownMenu: Fixed single-select failure in specific scenarios. @1jialong (#575)TDToast: Fixed multi-line text display issue. @Luozf12345TDPopup: Fixed horizontal line display issue when popup lacks outer Scaffold. @Luozf12345
🚧 Others
TDFooter: RefactoredTDFootercomponent; RemovedLinkObjclass and directly usedTDLinkclass; RemovedisWithUnderlineparameter (link styles now set inTDLink). @runoob-coder (#554)
-
0.1.931 Mar 2025Release notes
Open source →🌈 0.1.9
2025-03-31🚀 Features
TDProgress: 新增Progress 进度条组件 @CORCTON (#307)TDMessage: 新增Message 全局提示组件 @chendingya (#316)TDSkeleton: 新增Skeleton 骨架屏组件 @Ezer015 (#317)TDFooter: 新增Footer 页脚组件 @chendingya (#224)TDPopover: 新增Popover 弹出气泡组件 @ccXxx1aoBai (#435)TDSwitch: 添加自定义“开/关”字体大小 @shinyina (#217)TDDatePicker: filterItems 参数添加,可自定义显示那些选项;itemBuilder 参数添加,用于自定义item @hkaikai (#426)TDDrawer: 新建TDDrawerWidget组件,可用于Scaffold中的drawer属性 @hkaikai (#445)TDTable: 自定义列返回当前行号 @ccXxx1aoBai (#457)TDUpload: upload组件支持宽高设置和快速替换配置 @HubuHito (#462)TDButton: 添加按钮图标位置属性 @epoll-j (#463)TDDropdownMenu: 支持单选(multiple == false)模式下,分栏(optionsColumns > 1)展示选项 @hkaikai (#502)TDActionSheet: 新增动作面板组件 @hkaikai (#485)TDPicker: 增加customSelectWidget参数 @epoll-j (#495)TDSlider: 增加修改滑轨颜色参数 @epoll-j (#506)TDCalendar: 添加动画滚动日历选中值位置 @hkaikai (#509)TDStep: 新增CustomContent参数支持Step的Content可以自定义内容 @Jzow (#452)TDTag: 新增fixedWidth参数固定宽度属性,可自定义Tag的宽度,修复TextOverflow.ellipsis溢出title问题 @Jzow (#496)TDPopup: 为底部浮层面板添加了边缘拖动控制 @Jzow (#514)TDBadge: Badge设置封顶的数字值 @chendingya (#302)TDToast:带图标类型支持设置文字行数 @ccXxx1aoBai (#481)
🐞 Bug Fixes
TDRefreshHeader: 升级easy refresh到最新版本,兼容v2和v3写法;交互同步其他移动端平台 @hkaikai (#438)TDCell: 修复无默认样式情况下点击空白区域无反应问题;TDCellStyle默认构造方法提供context参数,可以构建默认样式;完善demo自定义样式用法 @hkaikai (#448)TDTable: 解决空数据图片无法显示问题 @ccXxx1aoBai (#451)TDTabBar: labelStyle、unselectedLabelStyle支持自定义Label的文字大小 @hkaikai (#453)TDCalendar: 修复定位到最后一个月时,无法定位问题 @hkaikai (#449)TDBottomTabBar: 修复capsule类型无法设置背景色 @epoll-j (#497)TDCalendar: 确定按钮添加国际化 @hkaikai (#505)TDUpload: 新增onMaxLimitReached函数修复自定义处理文件数量超过最大限制的Bug @Jzow (#474)TDInput: 新增_getTextWidth函数获取文本实际宽度和点击文本触发事件,修复buildNormalInput文本显示不全 @Jzow (#475)TDImage: 移除自定义宽和自定义高必填,以及默认高度和宽度尺寸72约束,让布局系统自动计算高度 @Jzow (#499)TDConfirmDialog: 新增布局约束和滚动支持动态计算最大高度,修复渲染失败Bug @Jzow (#510)TDDrawer: 新增_deleteRouter()在close函数中的调用强制清除路由,修复关闭路由无法再次打开Bug @Jzow (#512)TDText: 3.22鸿蒙版本text,组件不居中问题 @duleigiser (#437)TDAlertDialog: fix 按钮样式没有铺满 @lvjs (#460)
🚧 Others
Release notes
Open source →🚀 Features
TDProgress: AddedProgresscomponent @CORCTON (#307)TDMessage: AddedMessage(Global Prompt) component @chendingya (#316)TDSkeleton: AddedSkeletoncomponent @Ezer015 (#317)TDFooter: AddedFootercomponent @chendingya (#224)TDPopover: AddedPopover(Popup Bubble) component @ccXxx1aoBai (#435)TDSwitch: Added custom "ON/OFF" font size support @shinyina (#217)TDDatePicker: AddedfilterItemsparameter for custom display options anditemBuilderfor custom item rendering @hkaikai (#426)TDDrawer: CreatedTDDrawerWidgetcomponent compatible with Scaffold's drawer property @hkaikai (#445)TDTable: Custom columns now return current row number @ccXxx1aoBai (#457)TDUpload: Added width/height settings and quick replacement configuration support @HubuHito (#462)TDButton: Added icon position property @epoll-j (#463)TDDropdownMenu: Supported single-select mode (multiple == false) with multi-column display (optionsColumns > 1) @hkaikai (#502)TDActionSheet: Added Action Sheet component @hkaikai (#485)TDPicker: AddedcustomSelectWidgetparameter @epoll-j (#495)TDSlider: Added track color modification parameter @epoll-j (#506)TDCalendar: Added animated scrolling to selected value position @hkaikai (#509)TDStep: AddedCustomContentparameter for Step content customization @Jzow (#452)TDTag: AddedfixedWidthparameter and fixedTextOverflow.ellipsistitle overflow issue @Jzow (#496)TDPopup: Added edge drag control for bottom panel @Jzow (#514)TDBadge: Added capped numeric value setting for Badge @chendingya (#302)TDToast: Added multi-line text support for icon-type toasts @ccXxx1aoBai (#481)
🐞 Bug Fixes
TDRefreshHeader: Upgraded Easy Refresh to latest version, improved compatibility between v2/v3 syntax @hkaikai (#438)TDCell: Fixed unresponsive click in blank area without default style; Improved default style construction and demo usage @hkaikai (#448)TDTable: Fixed empty data image display issue @ccXxx1aoBai (#451)TDTabBar: AddedlabelStyleandunselectedLabelStylesupport for custom font sizes @hkaikai (#453)TDCalendar: Fixed positioning issue when scrolling to last month @hkaikai (#449)TDBottomTabBar: Fixed background color setting for capsule type @epoll-j (#497)TDCalendar: Added localization for confirm button @hkaikai (#505)TDUpload: AddedonMaxLimitReachedcallback to handle file limit overflow @Jzow (#474)TDInput: Added_getTextWidthfunction and click event to fix incomplete text display @Jzow (#475)TDImage: Removed mandatory custom width/height constraints (default 72px) for layout auto-calculation @Jzow (#499)TDConfirmDialog: Added layout constraints and dynamic max-height calculation with scroll support @Jzow (#510)TDDrawer: Added_deleteRouter()call in close function to force clear routes @Jzow (#512)TDText: Fixed text alignment issue in HarmonyOS 3.22 @duleigiser (#437)TDAlertDialog: Fixed button style not filling width @lvjs (#460)
🚧 Others
-
0.1.830 Dec 2024Release notes
Open source →🚀 Features
TDUpload: Added Upload component @TingShine (#405)SearchBar: Added keyboard action type @ccXxx1aoBai (#366)Cell: CellGroup added style control parameters: cardBorderRadius (card mode border radius), cardPadding (card mode padding), titlePadding (title padding) @hkaikai (#409)DropdownMenu: Added decorator configuration: decoration, which can customize menu color and border @hkaikai (#408)ImageViewer: Supports displaying image titles @ccXxx1aoBai (#411)Calendar: Added monthTitleBuilder parameter @hkaikai (#419)Calendar: Added pickerHeight, pickerItemCount parameters to control the height of the time selection component @hkaikai (#421)Toast: Supports customizing the overlay background color @ccXxx1aoBai (#423)Rate: Supports disabled parameter @hkaikai (#357)Calendar: Modified CalendarBuilder return value to Widget @Luozf12345 (#396)SearchBar: Added read-only attribute and click event @shizhe2018 (#393)Dialog: TDDialogButtonOptions added font size attribute @shizhe2018 (#381)DateTimePicker: Added time unit display attribute @shizhe2018 (#383)Input: Added additionInfo left and right display position @shizhe2018 (#401)
🐞 Bug Fixes
NoticeBar: Fixed the issue of abnormal text display on the web @ccXxx1aoBai (#351)Rate: Fixed the issue where the onChange event was not triggered when clicking the tooltip in half selection @hkaikai (#361)Calendar: Fixed the issue of inaccurate scroll position due to inconsistent number of rows in the month date @hkaikai (#363)Calendar: Optimized the issue of rendering lag caused by too large min and max @hkaikai (#363)Input: Fixed the issue where the dividing line and content were not aligned when setting contentPadding @epoll-j (#365)Table: Fixed the issue of overflow when setting the width of fixed columns @ccXxx1aoBai (#370)Popup: Fixed the issue of delay in closing when clicking on the overlay @hkaikai (#380)Cascader: Added the function of clicking to select the first layer @shizhe2018 (#355)DateTimePicker: Added restrictions on hours, minutes, and seconds @shizhe2018 (#362)Textarea: Optimized the update of word limit changes @shizhe2018 (#385)TabBar: Fixed the issue where labelStyle and unselectedLabelStyle did not take effect @shizhe2018 (#399)Picker: Fixed the issue of unable to select color when sliding in multi-layer pop-up @shizhe2018 (#413)SearchBar: Fixed the issue of SearchBar jittering at the default position when focusing, and the cursor not being centered @Luozf12345 (#417)Dialog: Modified Dialog to only pass contentWidget, no need to pass title and content @Luozf12345 (#418)TDBottomTabBar: Fixed the issue of bottom overflow by 2.5 pixels in iconText mode @epoll-j (#422)
🚧 Others
- Adapted to FlutterSdk3.25, the minimum supported version has been adjusted to 3.16.0 @shizhe2018 (#378)
- Modified Example English version copy @shizhe2018 (#382)
- Upgraded flutter_slidable version @Luozf12345 (#407)
- Added component search function to demo @Luozf12345 (#410)
- Updated Icons @Luozf12345 (#420)
-
0.1.716 Oct 2024Release notes
Open source →🚀 Features
TDNoticeBar: Added noticeBar component @ccXxx1aoBai (#162)Result: Added Result component @shinyina (#220)TimeCounter: Timer component supports time display beyond conversion units, original TDCountDown component renamed to TimeCounter @hkaikai (#272)Calendar: Added Calendar component @hkaikai (#271)Indexes: Added Indexes component @hkaikai (#321)Table: Added table component @ccXxx1aoBai (#244)Rate: Added Rate component @hkaikai (#338)Dialog: Supports custom content padding and buttons @ccXxx1aoBai (#289)Drawer: Supports controlling the visibility of the divider, custom drawer background color, and controlling the display of the last divider @ccXxx1aoBai (#278)DropdownMenu: Added control parameters for icon/width/height/icon and text alignment @hkaikai (#297)Search: Added action and onActionClick properties @Ezer015 (#263)Avatar: Added onTap event @ccXxx1aoBai (#344)TDDropdownMenu: Added tabBarFlex parameter to TDDropdownItem to control width ratio @hkaikai (#338)SearchBar: Feature/td searchbarfix added cursor height property @shizhe2018 (#337)TimeCounter: Added forward timing function @epoll-j (#246)NavBar: [NavBar] supports setting bottom shadow @ccXxx1aoBai (#284)Cell: Added custom padding parameter @epoll-j (#276)Input: Added onTapOutside callback @epoll-j (#280)Picker: Added custom leftText, rightText @epoll-j (#301)Slider: Feature/tdslider added text wrapping function @shizhe2018 (#329)Radio: Feature/tdRadioGroup added built-in line wrapping, set number of rows and columns @shizhe2018 (#331)Dialog: Added custom input box @shizhe2018 (#333)TDNavBar: Added flexibleSpace parameter @Luozf12345 (#341)TDSearch: Added search box focus acquisition and clear events @Luozf12345 (#342)
🐞 Bug Fixes
ImageViewer: Fixed defaultIndex invalid issue @ccXxx1aoBai (#292)TimeCounter: Fixed issue where it could not be reset repeatedly @hkaikai (#272)DropdownMenu: Adjusted popup layer logic, fixed issue where back button could not be listened to @hkaikai (#297)DatePicker: Removed monitoring on year, month, and day when destroyed to avoid memory leaks; added onSelectedItemChanged event @hkaikai (#300)SideBar: Fixed issue where custom selected style text was not centered @ccXxx1aoBai (#313)Popup: Fixed issue where multiple returns occurred when quickly clicking the mask @ccXxx1aoBai (#318)ImageViewer: Fixed issue where deleting the first image caused display anomalies @ccXxx1aoBai (#322)SideBar: Fixed issue where delayed loading components caused anchor point function anomalies @ccXxx1aoBai (#343)TDDropdownMenu: Optimized menu display text to show ellipsis when exceeding display limit @hkaikai (#338)NoticeBar: Fixed issue where it could not follow the theme color @ccXxx1aoBai (#350)Button: Fixed overflow issue when setting shape to square or circle @epoll-j (#257)Slider: Bugfix: Fixed issue where tb_slider setState did not update @arvinwli (#298)Cascader: Fixed list sorting issue @shizhe2018 (#303)Popup: Fixed issue where the keyboard would cover the input box in the Popup @epoll-j (#264)Cascader: Fixed linkage time limit range logic @shizhe2018 (#242)Loading: Fixed issue where dismissing Loading immediately after showing did not take effect @Luozf12345 (#340)
🚧 Others
- fix: remove useless output. @Ives7 (#311)
-
0.1.624 Jul 2024Release notes
Open source →🚀 Features
Cell: Added Cell component @hkaikai (#150)Drawer: Added Drawer component @hkaikai (#178)SwipeCell: Added SwipeCell component @hkaikai (#218)Steps: Added Steps component @aaronmhl (#199)ImageViewer: Added ImageViewer component @ccXxx1aoBai (#187)Cascader: Added Cascader component @shizhe2018 (#195)Fab: Added Fab component @TingShine (#239)BackTop: Added BackTop component @TingShine (#239)TreeSelect: Added TreeSelect component @TingShine (#239)Collapse: Added Collapse component @dorayx (#239)Input: Added inputAction API to support setting keyboard actions; added spacer API to customize component spacing @ccXxx1aoBai (#184)Text: Added global font configuration and the ability to load web fonts @Luozf12345 (#232)CountDown: Added start/reset/pause/resume control functions @hkaikai (#175)Popup: Supported position and size settings @hkaikai (#191)
🐞 Bug Fixes
Toast: Fixed the issue where the duration attribute was ineffective @ccXxx1aoBai (#167)Input: Fixed the label overflow issue @ccXxx1aoBai (#184)Tabs: For the tabs component, outlineType 'capsule' now supports setting selected and unselected tab background colors, and outlineType 'card' supports setting the selected tab background color @ccXxx1aoBaiButton: Fixed the issue where properties could not be changed under the setState method @shizhe2018 (#201)SearchBar: Added a controller to the search bar, allowing external clearing of search text @shizhe2018 (#194)Slider: Added custom Decoration styles @shizhe2018 (#198)Empty: Added text size style API @shizhe2018 (#219)Dialog: Added input type background @shizhe2018 (#238)
🚧 Others
- HarmonyOS compilation support @hkaikai (#233)
- Modified theme adaptation tool @Luozf12345
- Added GitHub links for complete pages in demo code @Luozf12345
-
0.1.531 May 2024Release notes
Open source →🚀 Features
TDDropdownMenu:- add: Added TDDropdownMenu dropdown menu component @hkaikai
TDTextarea:- add: Added Textarea multiline text box component @hkaikai
TDBottomTabBar:TDBadge:- add: TDBadge badge visibility setting when value is 0 @ccXxx1aoBai
TDRadio:TDCheckbox:- add: TDCheckbox added custom text color
- add: Added API to remove left margin
TDImage:TDInput:TDDivider:- add: Added text style size setting for divider component (#134)
TDToast:- add: Toast added attribute for custom text length (#148)
TDSideBar:
🐞 Bug Fixes
TDButton:- fix: Added mounted judgment before setState() (#122)
TDDialog:- fix: Modified Dialog to only auto-close when no action is set, if action is set, closing time is handled by the business itself (#117)
🚧 Others
- Added international language adaptation function
- Adapted to 3.16 text centering, added TDTextConfig usage document
-
0.1.408 Apr 2024Release notes
Open source →🚀 Features
TDCountDown:- add: Added TDCountDown countdown component @hkaikai
TDTheme:- add: Modified the theme implementation method, supporting ref attribute for custom mapping
- add: Added default number font numberFontFamily
TDText:- add: Added TDText force center switch kTextForceVerticalCenterEnable, which can globally disable forced centering to prevent excessive text offset after flutter 3.16 version (#35)
TDBottomTabBar:- add: Added custom background color feature (#55)
TDCheckbox:TDTabBar:- add: TDTabBar adds custom settings for divider color and height (#71)
TDSwitch:- add: TDSwitch supports custom "on/off" text (#73)
TDDialog:- add: Added custom title alignment and content Widget feature (#58)
🐞 Bug Fixes
TDSlider:- fix: Fixed an issue where TDSlider setting showThumbValue does not work.
TDButton:- fix: Fixed an issue where the external setting of the theme color for TDButton does not take effect (#54)
TDInput:
🚧 Others
- Example application, added a button to modify the theme, can quickly modify the theme color
-
0.1.315 Mar 2024Release notes
Open source →🚀 Features
TDButton:- add: Support for customizing the corner radius size through TDButtonStyle.radius
TDPicker:- add: Picker component scrolling on PC now supports mouse dragging
- add: For TDPicker and TDDatePicker components, the onConfirm no longer defaults to pop up the component internally, allowing external customization; when OnCancel is not empty, the component will not automatically pop.
TDSwitch:- add: onChanged now supports externally specifying whether to consume the event. If it has been consumed, it will no longer be processed internally (#27)
TDBottomTabBar:- add: Added custom label text style, optimized labText and icon parameter passing (#49)
🐞 Bug Fixes
TDNavBar:- fix: The height of NavBar is now obtained in real time to prevent it from not being available at the beginning (#34)
TDDialog:- fix: The contentColor parameter in DialogInfo was not passed in (#37)
TDButton:- fix: The click disable effect of TDButton is invalid (#44)
TDInput:TDAlertDialog:- fix: The operation of the default button of the component is open (#40)
TDRadio:- fix: Horizontal arrangement will force the addition of an underline (#40)
TDTabBar:- fix: The indicatorColor does not take effect (#31)
🚧 Others
- Optimized the performance of commonly used components such as TDButton, TDText, TDTheme, etc.
-
0.1.208 Jan 2024Release notes
Open source →🚀 Features
TDImage:- add: Added FitWidth type to the image, modified the corresponding Demo page (#14)
TDLoading:- add: Added methods for showing and hiding loading (#15)
TDPopup:- add: Added support for customizing the round corners (#17)
TDAvatar:- add: When the avatar type is character or icon, support for customizing the background color is added (#20)
🐞 Bug Fixes
TDBottomTabBar:- Added a safe area, fixed (#1)
TDButton:- update widget: Button's disable status can be updated
- fix: Button click state is too short (#13)
TDSwiper:- fix: Adapted swiper vertical dot bar style (#19)
TDInput:- fix: The setting of leftLabelStyle does not take effect when type is TDInputType.twoLine (#21)
🚧 Others
- The minimum compatible version has been changed to 3.7.0 (#3)
-
0.1.106 Dec 2023 -
0.1.006 Dec 2023 withdrawn -
0.0.906 Dec 2023 -
0.0.806 Dec 2023 -
0.0.706 Dec 2023 -
0.0.606 Dec 2023 -
0.0.505 Dec 2023 -
0.0.401 Dec 2023 -
0.0.316 Nov 2023 -
0.0.204 Nov 2023 -
0.0.104 Nov 2023