Flutter中的居中对齐前导图标

Posted

技术标签:

【中文标题】Flutter中的居中对齐前导图标【英文标题】:Center align leading icon in Flutter 【发布时间】:2021-07-05 23:42:36 【问题描述】:

我需要在中心对齐提示文本和前导图标,如下所示:

当我添加一个前导图标并居中对齐装饰时,这就是我得到的。我也需要图标位于中心。

编辑:当前代码

TextField(
      textAlign: TextAlign.center,
    decoration: InputDecoration(
      hintText: 'Type something',
      prefixIcon: Icon(Icons.search)
    )
  ),

【问题讨论】:

您需要共享现有代码。 【参考方案1】:

您的案例有一个小部件:IntrinsicWidth。此小部件用于将其子项的大小调整为子项的固有宽度。

输出

完整代码:


class CenteredTextField extends StatefulWidget 
  const CenteredTextField(Key key) : super(key: key);

  @override
  _CenteredTextFieldState createState() => _CenteredTextFieldState();


class _CenteredTextFieldState extends State<CenteredTextField> 
  @override
  Widget build(BuildContext context) 
    return Scaffold(
      body: Container(
        height: 40.0,
        margin: EdgeInsets.symmetric(horizontal: 20.0, vertical: 50.0),
        decoration: BoxDecoration(
          color: Colors.orange.withOpacity(0.4),
          borderRadius: BorderRadius.circular(20.0),
          border: Border.all(
            color: Colors.orange,
            width: 1.0,
          ),
        ),
        child: Center(
          child: IntrinsicWidth(
            child: TextField(
              textAlignVertical: TextAlignVertical.center,
              decoration: InputDecoration(
                prefixIcon: Icon(Icons.search),
                hintText: 'Type verse address',
                border: InputBorder.none,
              ),
            ),
          ),
        ),
      ),
    );
  

【讨论】:

以上是关于Flutter中的居中对齐前导图标的主要内容,如果未能解决你的问题,请参考以下文章

Flutter:带有前导图标和标题的 CupertinoNavigationBar

Flutter : 使具有不同图标大小的 IconButtons 和 Row 中的 Text 元素对齐到中心

Flutter TextField 居中对齐

在 TextField Flutter 中垂直居中对齐文本

Flutter 卡片列对齐和文本居中

在 Flutter 中对齐多行 TextField 中的提示文本