效果:

Expanded(
child: Container(
height: 32,
margin: EdgeInsets.only(right: 10),
decoration: BoxDecoration(
color: Colours.bg_gray,
borderRadius: BorderRadius.circular(5)),
child: TextField(
//输入框一行
maxLines: 1,
controller: _controller,
autofocus: false,
decoration: InputDecoration(
//输入里面输入文字内边距设置
contentPadding: const EdgeInsets.only(
top: 8.0, left: -19.0, right: -15.0, bottom: 8.0),
hintText: widget.hintText,
//不需要输入框下划线
border: InputBorder.none,
//左边图标设置
icon: Padding(
padding: EdgeInsets.all(8),
child: LoadAssetImage(
"order/order_search",
color: Colours.text_gray_c,
),
),
//右边图标设置
suffixIcon: GestureDetector(
onTap: () {
//addPostFrameCallback是 StatefulWidge 渲染结束的回调,只会被调用一次
SchedulerBinding.instance.addPostFrameCallback((_) {
_controller.text = "";
});
},
child: Padding(
padding: EdgeInsets.all(8),
child: LoadAssetImage(
'order/order_delete',
color: Colours.text_gray_c,
),
),
)),
),
))
本文详细解析了Flutter中输入框组件的使用方法,包括TextField组件的属性设置,如内边距、提示文本、输入限制等,以及如何通过调度器回调清空输入框内容。文章还介绍了如何在输入框中加入图标增强用户体验。
750

被折叠的 条评论
为什么被折叠?



