如何在 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
对http
、https
或任何其他您想要的协议在prefixText中使用regEx,然后您将能够正确区分所有协议。【参考方案2】:
据我了解,您需要蒙面编辑之类的东西,请看这里:https://github.com/benhurott/flutter-masked-text/blob/master/README.md
【讨论】:
以上是关于如何在 Flutter 上添加初始值而不编辑初始值?的主要内容,如果未能解决你的问题,请参考以下文章
Flutter:使用初始值文本时如何隐藏TextField文本指针(光标)(Android)
如何在 Flutter 中从上一个屏幕收到的值上将初始值设置为 TextFormField?