代码如下:
TextField(
controller: _textEditingController,
decoration: new InputDecoration(
enabledBorder: OutlineInputBorder(
borderSide: BorderSide(
color: Theme.of(context).accentColor,
width: 4.0,
),
borderRadius: new BorderRadius.circular(8.0)),
focusedBorder: new OutlineInputBorder(
borderRadius: new BorderRadius.circular(8.0),
borderSide: new BorderSide(
style: BorderStyle.solid,
color: Theme.of(context).accentColor,
width: 4.0,
),
),
filled: true,
fillColor: _getFillColorBasedOnInput(context),
suffixIcon: IconButton(
icon: SvgPicture.asset(
'assets/images/checkmark_yellow.svg',
color: _textEditingController.text.isEmpty ? Colors.black12 : null,
width: 32.0,
height: 32.0,
)),
),
keyboardType: TextInputType.text,
textCapitalization: TextCapitalization.sentences,
textAlign: TextAlign.center,
cursorColor: Theme.of(context).accentColor,
style: new TextStyle(
fontSize: 24,
color: Theme.of(context).accentColor,
))
这是它的样子:
任何人都可以提出一些解决方案,以将光标置于输入字段和选中标记图标的开头(请参见红色虚线)。我尝试了很多想法,但没有一个导致理想的结果。谢谢。
答案 0 :(得分:1)
您可以在这里做两件事:
1)通过删除多余的padding
来更改flutter文件中后缀图标的代码。
2)这是一种解决方法,您可以使用Stack
小部件将图标保持在Textfield
上方。这样,您就可以将光标居中。
虽然,如果您输入的文字太长(即,图标下方的输入内容),看起来会很不愉快。在这种情况下,您可能会限制输入。