dart Flutter为文本字段添加填充hinttext

rfbsl7qr  于 5个月前  发布在  Flutter
关注(0)|答案(4)|浏览(60)

我如何添加一个填充到文本字段提示文本,使它有一个图标框之间的差距?
目前是这样的:


的数据
其中我实现的结果为:

这是一段代码:

Padding(
  padding: EdgeInsets.only(top: 56.0),
  child: TextField(
    decoration: InputDecoration(
    prefixIcon: Container(
       padding: EdgeInsets.all(10.0),
       decoration: BoxDecoration(
          color: Color(0xFFE7ECEF), 
          borderRadius: BorderRadius.only(
             topLeft: Radius.circular(5.0),
             topRight: Radius.zero,
             bottomLeft: Radius.circular(5.0),
             bottomRight: Radius.zero,
          ),
          border: Border.all(
             color: Color(0xFFCDCDCF),
             width: 2.0,
          )
       ),
       child: Icon(MdiIcons.account, color: Colors.black),
    ),
    hintText: 'Username',
    focusedBorder: OutlineInputBorder(
    borderRadius: BorderRadius.circular(5.0),
    borderSide: BorderSide(
       color: Color(0xFFCDCDCF),
       width: 2.0,
    ),
  ),
  enabledBorder: OutlineInputBorder(
    borderRadius: BorderRadius.circular(5.0),
    borderSide: BorderSide(
       color: Color(0xFFCDCDCF), // Set your desired border color
       width: 2.0, // Set your desired border thickness
    ),
  ),
  contentPadding: EdgeInsets.all(10.0),
),),),

字符串

fae0ux8s

fae0ux8s1#

你只需要在容器中添加margin.
这里是更新的代码

TextField(
    decoration: InputDecoration(
      prefixIcon: Container(
/*---*/ margin: const EdgeInsets.only(right:15.0),
        padding: const EdgeInsets.all(10.0),
        decoration: BoxDecoration(
          color: const Color(0xFFE7ECEF),
          borderRadius: const BorderRadius.only(
            topLeft: Radius.circular(5.0),
            topRight: Radius.zero,
            bottomLeft: Radius.circular(5.0),
            bottomRight: Radius.zero,
          ),
          border: Border.all(
            color: const Color(0xFFCDCDCF),
            width: 2.0,
          ),
        ),
        child: const Icon(Icons.person, color: Colors.black),
      ),
      hintText: 'Username',
      focusedBorder: OutlineInputBorder(
        borderRadius: BorderRadius.circular(5.0),
        borderSide: const BorderSide(
          color: Color(0xFFCDCDCF),
          width: 2.0,
        ),
      ),
      enabledBorder: OutlineInputBorder(
        borderRadius: BorderRadius.circular(5.0),
        borderSide: const BorderSide(
          color: Color(0xFFCDCDCF), // Set your desired border color
          width: 2.0, // Set your desired border thickness
        ),
      ),
      contentPadding: const EdgeInsets.all(10.0),
    ),
  ),

字符串

结果


的数据

vc6uscn9

vc6uscn92#

您可以在InputDecoration中添加contentPadding属性,并设置垂直和水平值以控制提示文本周围的填充。根据您的首选项调整这些值,以实现图标框和提示文本之间的所需间隙。

// Add contentPadding to create a gap between the icon and hint text
  contentPadding: EdgeInsets.symmetric(vertical: 10.0, horizontal: 15.0),

字符串

prdp8dxp

prdp8dxp3#

您可以通过使用contentPadding来实现这一点,也可以参考Material Design获得边距和填充大小。read here或此处

contentPadding: EdgeInsets.symmetric(vertical: 8.0, horizontal: 16.0)

字符串

gg0vcinb

gg0vcinb4#

你可以像这样在textfield小部件中使用contentPadding属性:

---contentPadding: EdgeInsets.all(20.0),

字符串

相关问题