tf_framework library
A unified Flutter component framework: one set of Tf* components,
switchable component libraries (Material 3, Liquid Glass), ready-made
kits (auth forms, dialogs, states), localization and a central
preferences and settings system.
Classes
- LiquidGlassDesignSystem
-
iOS 26 风格的液态玻璃组件库,基于
liquid_glass_widgets包。 - Material3DesignSystem
- 使用 Flutter 自带 Material Design 3 控件的组件库。
- TfActionSetting
- 操作设置项:点击后执行 onTap,不对应任何偏好,例如“退出登录”“清除缓存”。
- TfApp
-
应用的根控件,用来代替
MaterialApp。 - TfAppearance
- 与组件库无关的外观参数,由偏好设置解析得到。
-
TfAsyncBuilder<
T> - 异步加载数据,并自动在“加载中 / 出错 / 空数据 / 有数据”四种状态间切换。
-
TfAsyncBuilderState<
T> -
TfAsyncBuilder 的状态,通过
GlobalKey获取后可调用 reload。 - TfAuthLayout
- 登录 / 注册页的布局:在页面中央依次显示 Logo、标题、副标题和一张装着表单的卡片。
- TfAvatar
- 圆形头像:有图片时显示图片,否则显示 name 的首字母。
- TfBanner
- 页面内的横幅提示,例如表单顶部的错误信息或页面顶部的通知。
- TfButton
- 按钮,有主要、次要、文字三种样式。
- TfCard
- 卡片:把一组相关内容放在同一块背景上。
- TfCheckbox
- 复选框,可在右侧附带一个可点击的标签。
- TfChip
- 标签(Chip),适合做筛选条件或多选标签。
-
TfChoice<
T> - TfChoiceSetting 的一个选项:保存的值 + 显示的文字 + 可选图标。
-
TfChoiceSetting<
T extends Object> - 单选设置项:从 options 中选一个值保存。
- TfColorSetting
- 颜色设置项:从 palette 里选一种颜色,以 ARGB 整数保存。
- TfDesign
- 向下提供当前组件库和外观参数,TfApp 会自动创建。
- TfDesignSystem
- 组件库接口:每个组件库(Material 3、液态玻璃……)都实现这个类。
- TfDesignSystemSetting
- 组件库切换设置项:在注册的所有组件库之间切换(例如 Material 3 / 液态玻璃)。
-
TfDialogAction<
T> -
对话框中的一个按钮,用于
showTfDialog。 - TfEmptyState
- 空状态页:列表或搜索结果为空时显示。
-
TfEnumPreference<
E extends Enum> -
枚举类型的偏好:以枚举值的名字(
Enum.name)存为字符串。 - TfErrorState
- 错误状态页:加载失败时显示,可带“重试”按钮。
- TfFramework
- 框架的总入口:统一管理组件库、偏好设置和设置页内容。
- TfFrameworkScope
- 向下提供 TfFramework 的内部控件,TfApp 会自动创建,一般无需直接使用。
- TfIconButton
- 只有图标的按钮,常用于顶栏操作。
- TfInfoSetting
- 只读信息项:在右侧显示一个值,例如版本号、设备 ID。
- TfLanguageSetting
- 语言设置项:选择界面语言,第一项“跟随系统”。
- TfListTile
- 列表行:左侧图标、标题、副标题、右侧附加控件。
- TfListView
- 可滚动的页面内容列表,TfScaffold.body 的首选。
- TfLoadingState
- 加载状态页:居中的转圈动画,可带一行说明文字。
- TfLoginCredentials
- 用户在 TfLoginForm 中提交的登录信息。
- TfLoginForm
- 完整的登录表单。
- TfMemoryPreferenceStore
- 只存在内存中的存储,应用退出后丢失,适合单元测试和预览。
- TfScaffold 导航栏中的一项。
- 跳转设置项:点击后打开 builder 构建的页面,例如二级设置页或“关于”页。
- TfPasswordField
- 密码输入框,右侧自带“显示 / 隐藏密码”按钮。
-
TfPreferenceKey<
T extends Object> - 一个偏好项的定义:名字 + 类型 + 默认值 + 可选校验。
- TfPreferenceKeys
-
框架内置的偏好项,都以
tf.开头。 - TfPreferencesController
-
所有偏好(框架和应用的)的唯一读写入口,通过
TfFramework.of(context).preferences获取。 - TfPreferenceStore
- 偏好的存储后端:每次保存完整的偏好快照。
- TfProgress
- 进度条,有横条和圆形两种。
- TfScaffold
- 页面骨架:顶栏 + 页面内容 + 可选的导航栏。
- TfSection
- 分组列表:带标题的一组行,行与行之间自动加分隔线。
-
TfSegment<
T> - TfSegmentedControl 的一个选项,label 和 icon 至少提供一个。
-
TfSegmentedControl<
T> - 分段选择器:在 2~5 个互斥选项中选一个,例如“日 / 周 / 月”。
- TfSetting
- 所有设置项的基类。
- TfSettingsList
- TfSettingsPage 的内容部分(不带顶栏),适合放在标签页里。
- TfSettingsPage
- 自动生成的完整设置页(带顶栏),直接 push 即可使用。
- TfSettingsSection
- 设置页中的一个分组:标题 + 若干设置项 + 可选的底部说明。
- 默认存储:把所有偏好编码为一个 JSON,保存在 shared_preferences 的 storageKey 条目下,不会影响应用自己存在 shared_preferences 里的其他数据。
-
TfSheetAction<
T> -
操作表(
showTfActionSheet)中的一个选项。 - TfSignUpData
- 用户在 TfSignUpForm 中提交的注册信息。
- TfSignUpForm
- 完整的注册表单:姓名(可选)、邮箱、密码、确认密码,以及可选的“同意条款”。
- TfSlider
- 滑块,用于在一个连续范围内取值,例如音量、亮度。
- TfSliderSetting
-
滑块设置项:对应一个
double偏好,右侧显示当前值。 - TfStatusView
- 通用的居中状态页:大图标 + 标题 + 说明 + 可选按钮。
- TfStrings
- 框架显示给用户的全部文字(按钮、校验提示、设置项名称等)。
- TfStringsDelegate
- 按当前语言加载 TfStrings,优先使用 overrides。TfApp 会自动注册,一般无需直接使用。
- TfStringsEn
- 英文文案。
- TfStringsZh
- 简体中文文案。
- TfSurfaceScope
- 标记“这片区域已经在一个表面上”(卡片、分组、对话框、面板)。
- TfSwitch
- 开关,用于立即生效的“开 / 关”选项。
- TfTextField
- 单个输入框。
- TfTextFormField
-
带校验的输入框,用在 Flutter 的
Form里。 - TfTextSetting
- 文本设置项:显示当前文字,点击后弹出输入框修改,例如昵称、服务器地址。
- TfToggleSetting
-
开关设置项:对应一个
bool偏好,点击整行或开关都能切换。 - TfValidators
- 常用的表单校验规则,错误提示会跟随当前语言。
Enums
- TfButtonVariant
- TfButton 的样式。
- TfLoginIdentifier
- TfLoginForm 第一个输入框填写的账号类型,决定图标、键盘和校验规则。
- TfToastType
-
提示的类型,决定
showTfToast、TfBanner的颜色和图标。
Constants
-
tfDefaultPalette
→ const List<
Color> - 内置“强调色”设置提供的默认色板。
Functions
-
runWithTfLoading<
T> (BuildContext context, Future< T> task(), {String? message}) → Future<T> -
执行
task期间显示全屏加载遮罩,任务结束后自动关闭,并返回任务结果。 -
sanitizePreferenceValues(
Map< String, Object?> values) → Map<String, Object> -
清理偏好数据:丢弃不支持的类型,并把 JSON 解码出的字符串列表转成
List<String>。 -
showTfActionSheet<
T> (BuildContext context, {required List< TfSheetAction< actions, String? title, String? message}) → Future<T> >T?> - 操作表:从屏幕底部弹出一组选项,返回所选项的 TfSheetAction.value; 取消时返回 null。
-
showTfAlert(
BuildContext context, {required String title, String? message, String? buttonLabel}) → Future< void> - 提示框:只有一个“好”按钮,用户点击后关闭。
-
showTfConfirm(
BuildContext context, {required String title, String? message, String? confirmLabel, String? cancelLabel, bool destructive = false}) → Future< bool> - 确认框:用户点“确定”返回 true;点“取消”或关闭对话框返回 false。
-
showTfDialog<
T> (BuildContext context, {required String title, required List< TfDialogAction< actions, String? message, Widget? content, bool barrierDismissible = true}) → Future<T> >T?> - 显示自定义按钮的对话框,返回用户所选按钮的 TfDialogAction.value; 点击遮罩关闭时返回 null。
-
showTfInputDialog(
BuildContext context, {required String title, String? message, String? initialValue, String? placeholder, IconData? prefixIcon, FormFieldValidator< String> ? validator, bool obscureText = false, TextInputType? keyboardType, String? confirmLabel}) → Future<String?> - 输入框对话框:让用户输入一行文字,返回输入内容;取消时返回 null。
-
showTfSheet<
T> (BuildContext context, {required WidgetBuilder builder, String? title}) → Future< T?> -
底部面板:从底部弹出,内容由
builder自由构建,适合筛选、详情等。 -
showTfToast(
BuildContext context, String message, {TfToastType type = TfToastType.info}) → void - 轻提示:在屏幕上短暂显示一条消息,几秒后自动消失。
-
tfBuiltInSettings(
TfStrings strings, {List< Color> palette = tfDefaultPalette}) → List<TfSettingsSection> -
框架内置的设置分组,文字使用
strings的语言。
Typedefs
- TfGlassBackgroundBuilder = Widget Function(BuildContext context, TfAppearance appearance)
- 生成液态玻璃页面背景(被玻璃折射的“壁纸”)的函数。
-
TfPreferenceValidator<
T> = bool Function(T value) - 偏好值的校验函数,返回 false 表示该值不允许保存。
-
TfSettingsBuilder
= List<
TfSettingsSection> Function(BuildContext context) - 根据 BuildContext 生成应用自己的设置分组,常用于按当前语言生成标题。
Exceptions / Errors
- TfAuthException
- 登录 / 注册失败时抛出的异常,message 会显示在表单顶部的错误横幅里。