TextField
在Flutter中TextField是最重要的一个表单组件,它是定义输入框,密码框以及textarea。
其中有几个重要的属性
maxLines
最大行数接受一个int,当这个设置为1时,就是我们平常的文本框了,你可以把它设置成更大,然后让它变成一个textarea。
onChanged
接受一个函数,函数中传入一个当前文本框值的参数,通过这个我们可以在文本框值改变的时候设置我们的值。
decoration
设置文本框的样式,接受一个InputDecoration对象,这个对象中的属性用来设置当前文本框的样式属性,比如说hintText类似于html的placeholder,labelText设置标签的文本,labelStyle设置标签文本文字样式(跟TextStyle用法一样), border设置文本框边框,我们可以传入一个OutlineInputBorder等。
obscureText
是否设置为密码框,默认为false,设置为true的时候就是密码框。
controller
接受一个TextEditController,我们可以在组件初始化的时候创建一个关于当前文本框的TextEditController,然后我们通过addListener函数来监听当前文本框的变化,它的作用比onChanged还要大。
1 | const TextField({ |
Checkbox,CheckboxListTile多选框组件
Checkbox常见属性
value
当前多选框的值,设置成true或者false。
onChanged
在多选框的值被改变的时候调用的函数
activeColor
选中的背景颜色
checkColor
选中的√的颜色
CheckboxListTile
checkboxListTile是类似于ListTile的多选框,其中也可以像ListTile中定义title,subtitle等。
value
当前多选框的值,设置成true或者false
onChanged
改变的时候接受的函数
title, subtitle
标题
secondary
在前面设置图片或者图片
selected
选中的时候是否文字颜色跟着改变
Radio,RadioListTile
Radio和checkbox差不多,主要就是一个groupValue。
radio中有一个value是定义当前单选按钮的value,还有一个是groupValue是定义当前单选按钮对应的组的值。其他属性和checkbox差不多,同理RadioListTile也和checkboxListTile也差不多。
Demo代码示例

1 | class MyApp extends StatelessWidget { |