flutter - TextFormField:仅当文本字段足够宽时才显示 suffixIcon
问题描述
我有一个TextFormField
带有 suffixIcon 的组件。但是我的一些输入字段相当多,因为它们只接受 2 或 3 个字符。如果文本字段太小,我想自动隐藏 suffixIcon。这可能吗?
TextFormField(
decoration: InputDecoration(
suffixIcon: IconButton(
icon: Icon(
Icons.clear,
color: ThemeColors.iconColor,
),
onPressed: () {
_controller.clear();
},
)
),
controller: _controller
)
编辑:
文本字段的宽度不固定 - 我不知道它的宽度。通常,文本字段被集成到灵活的布局中,例如在行中。
所以,事实上,我需要知道灵活文本字段的宽度。
解决方案
您可以使用 LayoutBuilder 提供的约束并相应地更新 UI。您可以使用 constraints.maxWidth 并将其与您的值进行比较
您的代码将更新如下
LayoutBuilder(builder: (context, constraints) {
print(constraints.maxWidth);
return TextFormField(
decoration: InputDecoration(
suffixIcon: constraints.maxWidth > YOUR_VALUE ? IconButton(
icon: Icon(
Icons.clear,
color: ThemeColors.iconColor,
),
onPressed: () {
_controller.clear();
},
) : null,
)
);
});
我希望它有帮助!
推荐阅读
- kotlin - 由于不同的列表对象导致重复代码
- c# - ASP.NET Core 5.0 RouteDataRequestCultureProvider 删除 url 中的默认区域性
- python - 如何将 Django 应用程序覆盖到 Pythonanywhere?3
- node.js - 错误!在创建新的反应原生项目时
- ios - 垂直旋转的 UIPageControl 占用太多空间
- python - 在 MySQL 中按文件扩展名过滤
- javascript - 在 React.tsx 中使用 createContext 传递 useState
- sql - oracle sql包含
- python - 列 2D 张量乘以行 2D 张量等于 3d pytorch 张量
- ajax - 如何使用codeigniter在ajax成功中显示数组结果?