TextField - 文本框
class MyTextField extends StatefulWidget{
@override
State<StatefulWidget> createState() {
// TODO: implement createState
return MyText();
}
}
class MyText extends State<MyTextField> {
final textController = TextEditingController();
@override
void dispose() {
super.dispose();
textController.dispose();
}
@override
void initState() {
// TODO: implement initState
super.initState();
textController.text = "hi";
textController.addListener((){
textController.text = "23";
});
}
@override
Widget build(BuildContext context) {
// TODO: implement build
return TextField(
controller: textController,
onSubmitted: (value) => {
},
decoration: InputDecoration(
icon: Icon(Icons.add_a_photo),
hintText: "請(qǐng)輸入什么東1西",
helperText: "什么東西",
labelText: "呵呵",
// border: InputBorder.none
border: OutlineInputBorder()
),
);
}
}
Form - 表單
TextFormField - 表單輸入框
RaisedButton - 表單按鈕
class MyFormTextField extends StatefulWidget{
@override
State<StatefulWidget> createState() {
// TODO: implement createState
return MyField();
}
}
class MyField extends State<MyFormTextField> {
final key = GlobalKey<FormState>();
bool auto = false;
String userName,passWord;
void save(){
if(key.currentState.validate()){
key.currentState.save();
Scaffold.of(context).showSnackBar(
SnackBar(
content: Text("hehe"),
)
);
}else{
auto = true;
}
}
String checkPhone(String value){
if(value.isEmpty){
return "enter phone";
}
}
String checkPassword(String value){
if(value.isEmpty){
return "enter password";
}
}
@override
Widget build(BuildContext context) {
// TODO: implement build
return Form(
key: key,
child: Column(
children: <Widget>[
TextFormField(
decoration: InputDecoration(
labelText: "userName"
),
onSaved: (value){
userName = value;
},
validator: checkPhone,
autovalidate: auto,
),
TextFormField(
decoration: InputDecoration(
labelText: "passWord"
),
onSaved: (value){
passWord = value;
},
validator: checkPassword,
autovalidate: auto,
),
Container(
margin: EdgeInsets.all(20),
width: double.infinity,
child: RaisedButton(
color: Theme.of(context).primaryColor,
child: Text("提交"),
onPressed: save,
),
)
],
),
);
}
}
Flutter入門(mén) - 表單
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。
相關(guān)閱讀更多精彩內(nèi)容
- DatePick 和 Timepick 在 Flutter 里面沒(méi)有對(duì)應(yīng)的控件。只是提供兩個(gè)函數(shù):showDate...
- ImagePicker 圖片選擇器 首先在 pubspec.yaml 添加依賴 Ios 在文件夾 ios/Runn...
- Flutter是什么? Flutter是一款移動(dòng)應(yīng)用程序SDK,一份代碼可以同時(shí)生成iOS和Android兩個(gè)高性...
- Radio 屬性 value radio 的取值 groupValue radio 組的取值。value == g...