如何在 Flutter 上添加初始值而不编辑初始值?

Posted

技术标签:

【中文标题】如何在 Flutter 上添加初始值而不编辑初始值?【英文标题】:How to add initial value without edit initial value on Flutter? 【发布时间】:2019-10-15 20:45:33 【问题描述】:

我像这样添加了初始值,但用户可以编辑初始文本。如何禁用编辑初始值? 但是用户可以用初始值进行增值吗?

 var _myController = TextEditingController(text: "https://");

输出应该是这样的

print(url);

https://(user_type_value)

【问题讨论】:

不不,用户允许写入但不删除 https:// 【参考方案1】:

你可以试试这个逻辑,这样https://会一直显示给用户,如果用户输入一个没有https://的url,我们很好,如果用户输入一个带有https://的url,我们又很好。

Column(
  mainAxisAlignment: MainAxisAlignment.center,
  children: <Widget>[
    TextField(
      controller: _controller,
      decoration: InputDecoration(prefixText: "https://"),
    ),
    RaisedButton(
      child: Text("Submit"),
      onPressed: () 
        String text = _controller.text.toString();
        if (!text.contains("https://")) 
          text = "https://" + text;
        
        // text here will always have https://
      ,
    ),
  ],
),

【讨论】:

用户类型http://会发生什么?不是https:// 我试过了,输出是:https://http://sample.com httphttps或任何其他您想要的协议在prefixText中使用regEx,然后您将能够正确区分所有协议。【参考方案2】:

据我了解,您需要蒙面编辑之类的东西,请看这里:https://github.com/benhurott/flutter-masked-text/blob/master/README.md

【讨论】:

以上是关于如何在 Flutter 上添加初始值而不编辑初始值?的主要内容,如果未能解决你的问题,请参考以下文章

Flutter:使用初始值文本时如何隐藏TextField文本指针(光标)(Android)

如何检索 oracle 序列的当前值而不增加它?

如何在 Flutter 中从上一个屏幕收到的值上将初始值设置为 TextFormField?

选择了 Knockout.js 下拉绑定

上下文 API 中的 React useState 值始终使用初始值而不是更新值

编辑单个 YAML 值而不更新 YAML 其余部分的格式(YAML CPP)[重复]