Skip to content

Autocomplete 自动补全输入框

带输入建议的输入框。

实现原理

使用 TextEditingController、FocusNode、OverlayEntry 等组件实现输入框和下拉建议列表,通过防抖机制优化性能。

基础用法

使用 size 属性来定义输入框的尺寸,fetchSuggestions 回调函数来获取建议数据。

customHeightcustomFontSize 可以自定义输入框高度和字体大小,会覆盖 size 的设置。

查看代码

自定义颜色

使用 colorType 属性来指定输入框的颜色类型,也可以通过 customColor 指定边框颜色。

customColor 会覆盖 colorType 的设置。

查看代码

默认颜色

使用 defaultColor 属性来指定输入框的默认边框颜色。

查看代码

可清除

使用 clearable 属性来控制是否显示清除按钮。

查看代码

禁用状态

使用 disabled 属性来控制输入框是否为禁用状态。

查看代码

占位符位置

使用 showPlaceholderOnTop 属性来指定聚焦时占位符是否显示在输入框顶部。

文字颜色同边框颜色一样受 colorTypecustomColor 影响。

查看代码

固定建议列表

使用组件的高级配置来实现更复杂的功能。

查看代码

API 调用

使用 onFocusonBluronChangeonSelectonClear 属性来定义输入框的回调函数。

查看代码

API

Autocomplete 属性

属性名说明类型默认值
textController文本控制器TextEditingController-
placeholder占位符文本String-
clearable是否显示清除按钮booleanfalse
disabled是否禁用booleanfalse
valueKey建议数据中作为显示值的字段名String'value'
debounce防抖延迟时间(毫秒)int300
size输入框尺寸ESizeItemESizeItem.medium
fetchSuggestions获取建议数据的回调函数Function(String, Function(List<Map<String, dynamic>>))必需
triggerOnFocus聚焦时是否触发建议搜索booleantrue
hideLoading是否隐藏加载指示器booleanfalse
highlightFirstItem是否高亮第一项建议booleanfalse
fitInputWidth建议列表是否适配输入框宽度booleanfalse
prefix输入框前缀图标Widget-
suffix输入框后缀图标Widget-
prepend输入框前置元素Widget-
append输入框后置元素Widget-
loading自定义加载组件Widget-
colorType颜色类型EColorTypeEColorType.primary
customColor自定义颜色Color-
defaultColor默认边框颜色ColorEBasicColors.borderGray
customHeight自定义输入框高度double-
customFontSize自定义字体大小double-
customBorderRadius自定义边框圆角double-
showPlaceholderOnTop聚焦时占位符是否显示在顶部booleanfalse

Autocomplete 事件

事件名说明参数
onSelect选择建议项时触发(dynamic value) => void
onChange输入内容变化时触发(String value) => void
onFocus获得焦点时触发() => void
onBlur失去焦点时触发() => void
onClear清除内容时触发() => void

基于 MIT 协议发布