美文网首页
【Flutter】输入框TextField光标不在内容最后面

【Flutter】输入框TextField光标不在内容最后面

作者: Piemon_Jay | 来源:发表于2021-12-13 12:01 被阅读0次

    通过controller控制TextField时,默认状态下光标会跑到内容最前面。
    通过以下方式,使光标保持在内容最后面;

    class _FormmState extends State<Formm> {
      TextEditingController _username = new TextEditingController();
      void initState() {
        super.initState();
        _username.text = "初始值";
      }
    
      @override
      Widget build(BuildContext context) {
        return Container(
          height: 600,
          child: Column(
            children: <Widget>[
              TextField(
                controller: _username,
                decoration: InputDecoration(
                  icon: Icon(Icons.people),
                  labelText: "用户名",
                  helperText: "输入长度2个字以上的汉字",
                  hintText: "请输入用户名",
                  errorText: "errorText",
                ),
                onChanged: (value) {
                  setState(() {
                    _username.text = value;
                    _username.value = TextEditingValue(
                      text: _username.text,
                      selection: TextSelection.fromPosition(
                        TextPosition(
                          affinity: TextAffinity.downstream,
                          offset: _username.text.length,
                        ),
                      ),
                    );
                  });
                },
              ),
              Container(
                child: TextButton(
                  child: Text("提交"),
                  onPressed: () {
                    print(_username.text);
                  },
                ),
              )
            ],
          ),
        );
      }
    

    这个写法是试了网上很多方法里在我这唯一有用的,但是每次change都要设置一下感觉怪怪的,不知道有没有更好的写法。

    参考链接:https://blog.csdn.net/qq_34529292/article/details/120096634

    相关文章

      网友评论

          本文标题:【Flutter】输入框TextField光标不在内容最后面

          本文链接:https://www.haomeiwen.com/subject/rkejfrtx.html