龙空技术网

Flutter TextField 获取输入内容与预设内容

早起的年轻人 122

前言:

此刻看官们对“java获取输入框的值”大约比较珍视,兄弟们都想要知道一些“java获取输入框的值”的相关文章。那么小编也在网上汇集了一些对于“java获取输入框的值””的相关资讯,希望各位老铁们能喜欢,大家一起来了解一下吧!

1 简述

一句话 TextEditingController 用来操作 TextField。

* 为绑定的输入框 TextField 预设内容

* 获取 TextField 中输入的内容

* 兼听文字输入变化与焦点变化

2 TextEditingController 的基本使用

第一步创建TextEditingController实例对象,其构造函数可选传参数text,通过构造函数text设置的内容将会在TextField创建时就显示到输入框内,代码如下:

///创建文本控制器实例///创建方式一TextEditingController _editingController = new TextEditingController();///创建方式二TextEditingController _controller2 = new TextEditingController(text: "初始化的");

第二步是对文本输入框TextField绑定控制器,代码如下:

new TextField(   //绑定控制器   controller: _editingController,   ),   ```第三步就是TextEditingController控制器常用方法,代码如下:```java/// 获取TextField中输入的内容String getEditeInputTextFunction(){  return _editingController.text;}/// 设置TextField中显示的内容void setEditeInputTextFunction(String flagText){   _editingController.text = flagText;}/// 清除TextField中显示的内容void clearEditeInputTextFunction(){  _editingController.text = "";  ///或者使用clear方法  _editingController.clear();}

初始化的时候光标保持在文字最后,代码实例如下

import 'package:flutter/cupertino.dart';import 'package:flutter/material.dart';///整理///TextField TextEditingController 分析篇class TextFeildHomePage6 extends StatefulWidget {  @override  State<StatefulWidget> createState() {    return TextFeildHomePageState();  }}class TextFeildHomePageState extends State {  ///用于文本输入框  TextEditingController controller = new TextEditingController();  ///用来控制  TextField 焦点的获取与关闭  FocusNode focusNode = new FocusNode();  @override  void initState() {    super.initState();    ///预设输入框的内容    String preText = "";    ///控制 初始化的时候光标保持在文字最后    controller = TextEditingController.fromValue(      ///用来设置初始化时显示      TextEditingValue(        ///用来设置文本 controller.text = "0000"        text: preText,        ///设置光标的位置        selection: TextSelection.fromPosition(          ///用来设置文本的位置          TextPosition(              affinity: TextAffinity.downstream,              /// 光标向后移动的长度              offset: preText.length),),),    );    /// 添加兼听 当TextFeild 中内容发生变化时 回调 焦点变动 也会触发    /// onChanged 当TextFeild文本发生改变时才会回调    controller.addListener((){      ///获取输入的内容      String currentStr = controller.text;      print(" controller 兼听 $currentStr");    });  }  @override  Widget build(BuildContext context) {    return Scaffold(      appBar: AppBar(        title: Text("TextField 讲解"),        actions: <Widget>[          FlatButton(child: Text("保存",style: TextStyle(color: Colors.white),),onPressed: (){            ///获取文本输入框的内容            String inputText  = controller.text;            print("点击了保存 $inputText");          },)        ],      ),      body: Center(        ///SizedBox 用来限制一个固定 width height 的空间        child: SizedBox(          width: 400,          height: 110,          child: Container(            color: Colors.white24,            padding:EdgeInsets.all(10) ,            ///Alignment 用来对齐 Widget            alignment: Alignment(0,0),            ///文本输入框            child: TextField(              controller: controller,              ///当TextField中输入的内容发生改变时回调              onChanged: (value){                print("TextField 中输入的内容 $value");              },              ),            ),          ),        ),    );  }}

完毕

标签: #java获取输入框的值