Button 按钮
常用的操作按钮。
实现原理
使用 MouseRegion 嵌套 GestureDetector 、Container 、Icon 、Text 等组件实现回调函数及样式
基础用法 MouseRegion
使用 type
、isPlain
、isRound
属性来定义按钮的样式。
isCircle
可以控制组件展示圆形,但是仅在只传入一个 Icon 的时候生效
查看代码▼
禁用状态
使用 disabled
属性来控制按钮是否为禁用状态。 使用 disabled 属性来控制按钮是否为禁用状态。 该属性接受一个 Boolean 类型的值。
查看代码▼
图标按钮
使用 icon
属性来为按钮添加图标
查看代码▼
链接按钮
使用 link
属性来定义链接按钮。
查看代码▼
加载状态
使用 loading
属性来显示加载状态。
使用 autoLoading
属性 控制 onclick 触发时 是否自动调用 loading 动画,并在结束时消失,仅在 onclick 的函数为异步函数时生效
当然也可以用状态管理的方式手动实现 loading
查看代码▼
按钮尺寸
使用 size
属性来定义按钮的尺寸。
查看代码▼
自定义颜色
使用 color
属性来自定义按钮的颜色。
查看代码▼
自定义内容
使用 child
属性来自定义按钮的内容。
查看代码▼
api 调用
使用 onHover
、onPressed
、onLongPressed
属性来定义按钮的回调函数。
onHover
属性会在鼠标悬停时触发,鼠标进入时返回 true, 离开时返回 false,只在 web 端有效
onPressed
属性会在按钮被点击时触发
onLongPressed
属性会在按钮被长按时触发
查看代码▼
API
Button 属性
属性名 | 说明 | 类型 | 默认值 |
---|---|---|---|
text | 按钮文字 | String | - |
type | 按钮类型 | ElementButtonType | ElementButtonType.default |
size | 按钮尺寸 | ElementButtonSize | ElementButtonSize.medium |
fontSize | 自定义按钮文字大小, 按钮尺寸会根据文字大小自动调整 | double | - |
color | 自定义背景颜色,文字颜色会根据背景颜色自动计算 | Color | - |
link | 是否为链接按钮 | boolean | false |
icon | 图标 | Widget | - |
child | 自定义按钮内容,会覆盖 Icon 和 Text,优先级最高 | Widget | - |
isPlain | 是否为朴素按钮 | boolean | false |
isRound | 是否为圆角按钮 | boolean | false |
loading | 是否为加载中状态 | boolean | false |
autoLoading | onclick 触发时 是否自动调用 loading 动画,并在结束时消失 | boolean | false |
isDisabled | 是否禁用按钮 | boolean | false |
Button 事件
事件名 | 说明 | 参数 |
---|---|---|
onPressed | 点击按钮时触发 | () => void |
onHover | 鼠标悬停时触发, 鼠标进入时返回 true, 离开时返回 false,只在 web 端有效 | (bool isHover) => void |
onLongPressed | 长按按钮时触发 | () => void |