有2种解决方案,第一种是点击文本框光标直接定位到最右侧,第二种方案是手指点到光标哪里,光标就到哪里.下面我依次为大家说明并奉上代码
第一种:最右侧(精简代码,只讲用到部分)
//先在类内定义这个变量
final TextEditingController _newPassword = TextEditingController();
//然后在他的TextField里面增加以下代码
//重点就在TextField里面的参数controller和onTap
//把这2个改成以下代码就能每次收缩键盘后再次点击到达文本框最右边
TextField(
obscureText: true,
maxLines: 1,
// maxLength: 16,
inputFormatters: [
LengthLimitingTextInputFormatter(16)
],
controller: _newPassword0,
textAlign: TextAlign.left,
decoration: InputDecoration(
hintText: getUItext()['enterNewPassword'],
hintStyle:
TextStyle(color: Colors.grey[400]),
border: InputBorder.none,
),
style: const TextStyle(fontSize: 20),
onChanged: (value) {
newPassword = value;
},
onTap: () {
_newPassword0.selection =
TextSelection.fromPosition(
TextPosition(
offset: _newPassword0.text.length),
);
},
),
第二种解决方案:光标点到文本哪里,文本就在哪里
//先在类内定义这个变量
final TextEditingController _oldPassword0 = TextEditingController();
//销毁这个_oldPassword0
void dispose() {
super.dispose();
if (_oldPassword0 != null) {
_oldPassword0.dispose();
_oldPassword0.clear();
}
}
//重点就在TextField里面的参数controller
TextField(
obscureText: true,
maxLines: 1,
// maxLength: 16,
inputFormatters: [
LengthLimitingTextInputFormatter(16)
],
controller: _oldPassword0,
textAlign: TextAlign.left,
decoration: InputDecoration(
hintText: getUItext()['enterOldPassword'],
hintStyle:
TextStyle(color: Colors.grey[400]),
border: InputBorder.none,
),
style: const TextStyle(fontSize: 20),
onChanged: (value) {
oldPassword = value;
},
),
第二种方法只要在dispose里面销毁他就能做到光标点到哪就在哪