tolyui_tag 0.0.1 copy "tolyui_tag: ^0.0.1" to clipboard
tolyui_tag: ^0.0.1 copied to clipboard

tag for tolyui

TolyUI Tag #

一个功能丰富的Flutter标签组件库,提供基础标签、可选择标签和标签组功能,支持多种样式变体和主题定制。

功能特性 #

  • 基础标签 (Tag): 支持多种样式变体(填充、实心、轮廓)
  • 可选择标签 (CheckableTag): 支持选中/未选中状态切换
  • 标签组 (CheckableTagGroup): 支持单选和多选模式
  • 丰富的自定义选项: 颜色、图标、关闭按钮等
  • 动画效果: 平滑的悬浮和关闭动画
  • 主题定制: 完整的主题系统支持
  • 响应式交互: 支持悬浮、点击、禁用状态

安装 #

pubspec.yaml 文件中添加依赖:

dependencies:
  tolyui_tag: ^0.0.1

然后运行:

flutter pub get

使用方法 #

导入包 #

import 'package:tolyui_tag/tolyui_tag.dart';

基础标签 #

// 基础标签
Tag(
  child: Text('默认标签'),
)

// 带颜色的标签
Tag(
  color: Colors.blue,
  child: Text('蓝色标签'),
)

// 可关闭标签
Tag(
  closable: true,
  onClose: () => print('标签已关闭'),
  child: Text('可关闭标签'),
)

// 带图标的标签
Tag(
  icon: Icon(Icons.star, size: 12),
  child: Text('带图标标签'),
)

标签样式变体 #

// 填充样式(默认)
Tag(
  variant: TagVariant.filled,
  color: Colors.green,
  child: Text('填充标签'),
)

// 实心样式
Tag(
  variant: TagVariant.solid,
  color: Colors.red,
  child: Text('实心标签'),
)

// 轮廓样式
Tag(
  variant: TagVariant.outlined,
  color: Colors.orange,
  child: Text('轮廓标签'),
)

可选择标签 #

bool isChecked = false;

CheckableTag(
  checked: isChecked,
  onChange: (checked) {
    setState(() {
      isChecked = checked;
    });
  },
  child: Text('可选择标签'),
)

标签组 #

// 单选标签组
String? selectedValue;

CheckableTagGroup<String>(
  options: [
    CheckableTagOption(value: 'option1', label: Text('选项1')),
    CheckableTagOption(value: 'option2', label: Text('选项2')),
    CheckableTagOption(value: 'option3', label: Text('选项3')),
  ],
  value: selectedValue,
  onChange: (value) {
    setState(() {
      selectedValue = value;
    });
  },
)

// 多选标签组
List<String> selectedValues = [];

CheckableTagGroup<String>(
  multiple: true,
  options: [
    CheckableTagOption(value: 'tag1', label: Text('标签1')),
    CheckableTagOption(value: 'tag2', label: Text('标签2')),
    CheckableTagOption(value: 'tag3', label: Text('标签3')),
  ],
  values: selectedValues,
  onChangeMultiple: (values) {
    setState(() {
      selectedValues = values;
    });
  },
)

主题定制 #

final customTheme = TagTheme(
  defaultBg: Colors.grey[100]!,
  defaultColor: Colors.black87,
  colorPrimary: Colors.purple,
  borderRadius: 8.0,
  fontSize: 14.0,
  // ... 其他主题属性
);

Tag(
  theme: customTheme,
  child: Text('自定义主题标签'),
)

API 参考 #

Tag 属性 #

属性 类型 默认值 描述
child Widget? null 标签内容
color Color? null 标签颜色
variant TagVariant filled 样式变体
closable bool false 是否可关闭
onClose VoidCallback? null 关闭回调
icon Widget? null 前置图标
disabled bool false 是否禁用
onTap VoidCallback? null 点击回调
theme TagTheme? null 自定义主题

CheckableTag 属性 #

属性 类型 默认值 描述
checked bool required 是否选中
onChange ValueChanged null 状态变化回调
child Widget? null 标签内容
disabled bool false 是否禁用
theme TagTheme? null 自定义主题

CheckableTagGroup 属性 #

属性 类型 默认值 描述
options List<CheckableTagOption required 选项列表
multiple bool false 是否多选
value T? null 单选值
values List null 多选值
onChange ValueChanged<T?>? null 单选回调
onChangeMultiple ValueChanged<List null 多选回调
gap double 8.0 标签间距
disabled bool false 是否禁用

许可证 #

本项目采用 MIT 许可证。详情请参阅 LICENSE 文件。

0
likes
110
points
25
downloads

Publisher

unverified uploader

Weekly Downloads

tag for tolyui

Homepage
Repository (GitHub)
View/report issues

Documentation

API reference

License

MIT (license)

Dependencies

flutter

More

Packages that depend on tolyui_tag