首页模块中会使用到TextField的使用,用来使用文本的获取,以及传值等使用。
在Flutter中,TextField
是一个用于输入文本的小部件,它具有以下属性:
text
: 文本字段中的当前文本。maxLength
: 文本字段的最大长度。maxLines
: 文本字段的最大行数。decoration
: 文本字段的装饰,例如边框、颜色等。style
: 文本字段的样式,例如字体、颜色等。controller
: 文本字段的控制器,用于控制文本的输入和显示。obscureText
: 是否隐藏文本字段中的内容。overflow
: 文本字段是否溢出。textInputAction
: 文本输入动作,例如提交、清除等。autofocus
: 是否自动聚焦到文本字段。inputFormatters
: 输入格式化器,用于格式化输入的文本。inputSizing
: 输入大小调整,用于调整文本字段的大小。
这些属性提供了对TextField
小部件的基本配置和控制,例如设置最大长度、调整样式和设置输入动作等。
TextFiled的设置也会使用到输入框的样式设置,会使用到decoration这个属性,一下是部分的decoration的属性。
在Flutter中,TextField
的decoration
属性用于设置文本字段的装饰,它是一个InputDecoration
对象。InputDecoration
具有以下属性:
border
: 是否显示文本字段的边框。borderColor
: 文本字段边框的颜色。borderRadius
: 文本字段边框的圆角大小。prefix
: 文本字段前面的图标或文字。suffix
: 文本字段后面的图标或文字。contentPadding
: 文本字段内部的内容间距。counterText
: 计数器的文本。counterOverflow
: 计数器是否溢出。hintText
: 提示文本,当文本字段为空时显示。hintStyle
: 提示文本的样式。textFieldHasFloatingButton
: 是否显示悬浮按钮。textFieldHasCounter
: 是否显示计数器。textFieldHasFloatingCursor
: 是否显示浮动光标。textFieldHasClearButton
: 是否显示清除按钮。textFieldHasError
: 是否显示错误消息。textFieldHasErrorDecoration
: 是否显示错误装饰。
这些属性用于控制文本字段的外观和行为,例如设置边框、调整内部间距、显示提示文本和错误消息等。
以下是一个简单的案例:
@override
Widget build(BuildContext context) {
return Scaffold(
body: Column(
mainAxisAlignment: MainAxisAlignment.start,
children: [
Container(
child: ClipRRect(
borderRadius: BorderRadius.circular(30),
child: TextField(
//TODO 输入文本的存储,设置的一个属性_controller
controller: _controller,
decoration: InputDecoration(
isDense: true,
filled: true,
//TODO 输入框中的填充颜色
fillColor: Color(0xFFBBEAEF),
//TODO 下滑线的设置
border: InputBorder.none,
//TODO suffix输入框中的一个按钮的设置
suffixIcon: TextButton(
onPressed: () {
//TODO TextEditingController的转换成String类型
var str = _controller.text.trim().toString();
//TODO 跳转
Navigator.push(context,
MaterialPageRoute(builder: (context) {
return Interface(str);
}));
},
child: Text("查询")),
hintText: "请输入城市",
),
//TODO 焦点
focusNode: FocusNode(),
//TODO 输入框中的文字颜色
style: const TextStyle(fontSize: 16, color: Color(0xFF000000)),
),
),
),
],
),
);
}