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
只存在内存中的存储,应用退出后丢失,适合单元测试和预览。
TfNavDestination
TfScaffold 导航栏中的一项。
TfNavigationSetting
跳转设置项:点击后打开 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
设置页中的一个分组:标题 + 若干设置项 + 可选的底部说明。
TfSharedPreferenceStore
默认存储:把所有偏好编码为一个 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<T>> actions, String? title, String? message}) → Future<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<T>> actions, String? message, Widget? content, bool barrierDismissible = true}) → Future<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 会显示在表单顶部的错误横幅里。