如何减少 TextField 上 prefixIcon 上的填充?

tyi*_*ine 2 flutter flutter-layout

我不知道如何超过 48 像素材质库的默认值。我通过 SDK 进行了快速扫描,但找不到任何东西。我知道这与 prefixIcon 参数本身有关,因为无论里面放什么,它总是 48px 或任何东西。

我有一个自定义的 SDK,所以如果有人知道它在哪里,我想减少它,因为它总是挡道。

在此处输入图片说明

  // : Searchbar Decoration
  static InputDecoration searchbarDecoration = InputDecoration(
    prefixIcon: Icon(
      Icons.search,
      color: DocumentColours.colour10,
    ),
    contentPadding: EdgeInsets.symmetric(
      vertical: 0.0,
      horizontal: 0.0,
    ),
    fillColor: DocumentColours.colour8,
    filled: true,
    labelText: 'Search',
    labelStyle: FontStyles.searchbarLabel,
    hasFloatingPlaceholder: false,
    border: OutlineInputBorder(
      borderRadius: BorderRadius.circular(5.0),
      borderSide: BorderSide(width: 0.0, style: BorderStyle.none),
    ),
  );

Run Code Online (Sandbox Code Playgroud)

voi*_*oid 10

注意:要解决此问题,请使用prefixIconConstraintsInputDecoration SDK 版本 1.17.0as属性

以下是文档中的内容(1.17.0) input_decorater.dart

BoxConstraints 可用于修改 prefixIcon 的周围。此属性对于使装饰的高度小于 48 像素特别有用。这可以通过将 [isDense] 设置为 true 并将约束的最小高度和宽度设置为低于 48px 的值来实现。

检查下面的代码:它完美地工作:

TextField(
    decoration: InputDecoration(
      // choose any icon of your choice here
      prefixIcon: Icon(Icons.person),
      // set the prefix icon constraints
      prefixIconConstraints: BoxConstraints(
        minWidth: 25,
        minHeight: 25,
      ),
    ),
  ),
Run Code Online (Sandbox Code Playgroud)

我希望这有帮助。