flutter : How to center an icon next to hint text inside an input decoration?

标签 flutter user-interface dart textfield

Example of desired effect

我有一个TextFieldInputDecoration我在其中设置了 hintText和一个 prefixIcon ,但是prefixIcon我正在使用的属性始终会将图标一直拉到左侧。

TextField(
  textAlign: TextAlign.center,
  decoration: InputDecoration(
    contentPadding: EdgeInsets.fromLTRB(0, 30, 0, 30),
    prefixIcon: Icon(Icons.search),
    hintText: 'Search',
    fillColor: Color(0xffF1F4FB),
    filled: true,
    enabledBorder: OutlineInputBorder(
      borderRadius: BorderRadius.circular(25),
      borderSide: BorderSide(
        color: Color(0xffF1F4FB),
      ),
    ),
    disabledBorder: OutlineInputBorder(
      borderRadius: BorderRadius.circular(25),
      borderSide: BorderSide(
        color: Color(0xffF1F4FB),
      ),
    ),
  ),
),

我正在尝试更改此设置,以使搜索图标和提示文本最初彼此相邻居中。怎样才能达到这样的效果呢?

最佳答案

这是使用IntrinsicWidth的解决方案。

使用此解决方案,搜索图标将位于提示文本旁边,然后它将保留在用户输入的文本旁边。

enter image description here

import 'package:flutter/material.dart';

void main() {
  runApp(
    MaterialApp(
      debugShowCheckedModeBanner: false,
      title: 'Flutter Demo',
      home: HomePage(),
    ),
  );
}

class HomePage extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      body: Center(
        child: Container(
          height: 48.0,
          padding: EdgeInsets.symmetric(horizontal: 16.0, vertical: 0.0),
          margin: EdgeInsets.all(8.0),
          decoration: BoxDecoration(
            color: Colors.amber.shade300,
            border: Border.all(
              color: Colors.brown,
              width: 3.0,
            ),
            borderRadius: BorderRadius.circular(25),
          ),
          child: Center(
            child: IntrinsicWidth(
              child: TextField(
                textAlignVertical: TextAlignVertical.center,
                decoration: InputDecoration(
                  prefixIcon: Icon(Icons.search),
                  hintText: 'Search',
                  border: InputBorder.none,
                ),
              ),
            ),
          ),
        ),
      ),
    );
  }
}

关于 flutter : How to center an icon next to hint text inside an input decoration?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66190127/

相关文章:

dictionary - 如何在抖动中操纵 map ?

flutter - 在 flutter 中自定义应用栏,例如 gmail 应用栏设计

java - 关闭新打开的 JFrame

没有桌面环境的java gui

firebase - 如何使用嵌套 double 据将数据添加到Firebase

Flutter - 改变 TabBarView 的动画

flutter : Handling error Dio Package (404, 400 等)

python - 自动更新无法直接访问的 tkinter 标签

dart - 如何使用 Dart ChangeNotifier 类?

user-interface - 如何将listView转换为GridView抖动?