我正在使用DecoratedBox
向我的TextFormField
添加背景。
但是,在将validator
用于错误情况之后,DecoratedBox
会扩展以容纳错误消息,该错误消息将背景色推到TextFormField
的边界之外。有没有办法防止它发生。
final lastNameBox = DecoratedBox(
decoration: const BoxDecoration(color: Color(0x2B8E8E93),
borderRadius:BorderRadius.only(
topLeft: const Radius.circular(24.0),
topRight: const Radius.circular(24.0),
bottomLeft: const Radius.circular(24.0),
bottomRight: const Radius.circular(24.0))),
child: firstName,
);
final firstName = TextFormField(
controller: _firstNameController,
keyboardType: TextInputType.emailAddress,
validator: Validator.validateFirstName,
autofocus: false,
decoration: InputDecoration(
hintText: 'First Name',
contentPadding: EdgeInsets.fromLTRB(20.0, 10.0, 20.0, 10.0),
border: OutlineInputBorder(borderRadius: BorderRadius.circular(32.0)),
),
);
我想要实现的是,在所有情况下,背景颜色始终包裹着TextFormField
。
理想情况下,我想让红色错误出现在TextFormField
下面,而文本没有任何background
颜色。
答案 0 :(得分:1)
删除DecoratedBox
小部件并修改firstName
小部件,例如:
final firstName = TextFormField(
controller: _firstNameController,
keyboardType: TextInputType.emailAddress,
validator: Validator.validateFirstName,
autofocus: false,
decoration: InputDecoration(
hintText: 'First Name',
filled: true,
fillColor: Color(0x2B8E8E93),
contentPadding: EdgeInsets.fromLTRB(20.0, 10.0, 20.0, 10.0),
border: OutlineInputBorder(borderRadius: BorderRadius.circular(32.0)),
),
);