You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Flutter:将TextFormField图标移至输入框外部右侧的实现问题

解决Flutter搜索栏图标置于外部后方的问题

直接把搜索栏和图标放在Row里,给搜索栏套个Expanded就能解决你之前图标不显示的问题——核心是让搜索栏占满Row的可用宽度,图标自然就能显示在外部右侧。

修改后的完整代码如下:

Expanded(
  child: Column(
    mainAxisAlignment: MainAxisAlignment.start,
    children: [
      SizedBox(height: 40),
      Row(
        children: [
          SizedBox(width: 8),
          //MENU
          Icon(
            Icons.menu,
            size: 34,
            color: AppColors.black,
          ),
          Spacer(),
          //LOGO
          SizedBox(
              height: 60,
              width: 100,
              child: Image.asset(
                'assets/icons/logo_transparent_main.png',
              )),
          SizedBox(width: 8)
        ],
      ),
      // 修改后的搜索栏区域
      Padding(
        padding: const EdgeInsets.all(8.0),
        child: Row(
          children: [
            Expanded(
              child: TextFormField(
                // controller: textIDController,
                style: const TextStyle(
                    color: Colors.black, fontWeight: FontWeight.w700),
                decoration: InputDecoration(
                  labelText: "Search",
                  labelStyle: const TextStyle(
                      color: Colors.black, fontWeight: FontWeight.w700),
                  focusedBorder: OutlineInputBorder(
                    borderRadius: BorderRadius.circular(20),
                    borderSide:
                        const BorderSide(color: Colors.black, width: 2.0),
                  ),
                  enabledBorder: OutlineInputBorder(
                    borderRadius: BorderRadius.circular(20),
                    borderSide:
                        const BorderSide(color: Colors.black, width: 2.0),
                  ),
                ),
                maxLines: 1,
                keyboardType: TextInputType.text,
                textInputAction: TextInputAction.next,
              ),
            ),
            SizedBox(width: 8), // 图标和搜索栏之间的间距
            FaIcon(
              Icons.filter_list_sharp,
              size: 30,
              color: AppColors.black,
            ),
          ],
        ),
      ),
      SizedBox(height: 10),
    ],
  ),
),

关键修改说明

  • 移除TextFormField的suffixIcon配置,避免图标在输入框内部显示
  • 使用Row包裹TextFormField与过滤图标,给TextFormField添加Expanded组件,确保它占据Row的全部剩余宽度,解决图标被挤压消失的问题
  • 在图标与搜索栏之间添加SizedBox(width:8),保持布局间距的一致性

内容的提问来源于stack exchange,提问作者CodeVault

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.17 20:32:12