Flutter入門(mén) - 表單

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,
            ),
          )
        ],
      ),
    );
  }
}
?著作權(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ù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容