无法在 Flutter TextField 小部件中垂直居中输入文本和后缀

Posted

技术标签:

【中文标题】无法在 Flutter TextField 小部件中垂直居中输入文本和后缀【英文标题】:Can't vertically center both input text and suffix in the Flutter TextField widget 【发布时间】:2021-06-13 19:54:27 【问题描述】:

我很难在 TextField Flutter 小部件中对齐输入 ext 和后缀。我尝试将它们垂直居中,但由于某种原因不能这样做。

当我不指定后缀时,输入文本会根据需要垂直居中: 当我指定后缀时,输入文本下降而后缀上升,因此它们都不是垂直居中的:

我的代码:

return Scaffold(
      backgroundColor: Colors.blue,
      appBar: AppBar(
        title: Text('test'),
      ),
      body: Container(
        color: Colors.grey.shade800,
        margin: EdgeInsets.symmetric(
          horizontal: 20,
          vertical: 10,
        ),
        height: 70,
        alignment: Alignment.centerLeft,
        child: TextField(
          style: TextStyle(
            textBaseline: TextBaseline.alphabetic,
            color: Colors.white,
            fontSize: 17,
            fontWeight: FontWeight.w400,
            decoration: TextDecoration.none,
          ),
          textAlignVertical: TextAlignVertical.center,
          decoration: InputDecoration(
            suffix: Icon(
              Icons.clear,
              color: Colors.red,
            ),
            suffixStyle: TextStyle(
              color: Theme.of(context).textTheme.bodyText1.color,
              fontWeight: FontWeight.w400,
              fontSize: 17,
              textBaseline: TextBaseline.ideographic,
            ),
            border: InputBorder.none,
            hintText: "Search",
          ),
        ),
      ),
    );

问题:

如何使输入文本和后缀垂直居中?

【问题讨论】:

【参考方案1】:

将图标包裹在Transform.translate 中并为其设置propper 偏移量

【讨论】:

以上是关于无法在 Flutter TextField 小部件中垂直居中输入文本和后缀的主要内容,如果未能解决你的问题,请参考以下文章

Flutter:单击 TextField 时,推送的 LoginScreen 小部件正在重建 UI

Flutter textField 小部件中的 onSubmitted 和 onEditingComplete 有啥区别?

Flutter TextField 自动完成覆盖

如何在 Flutter 的同一屏幕上沿 ListView 显示小部件?

Flutter - 在 AlertDialog 小部件之外点击后关闭系统键盘

如何在 Flutter 中隐藏 TextField 底部的字母计数器