由于内容填充,错误消息也从左侧填充开始。如何为错误消息显示不同的内容填充。实际上它应该从左侧边框开始。但我需要 TextFormField 内部的内容填充,而不是错误消息。
Padding(
padding: const EdgeInsets.all(10),
child: Form(
key: _formKeyOldPassword,
onChanged: () {
setState(() {
_proceedOldPassword =
_formKeyOldPassword
.currentState!
.validate();
});
},
child: TextFormField(
controller: oldPasswordController,
obscureText: _oldPasswordVisible,
autofocus: false,
style: AppStyle().textStyleLabel,
validator: (text) {
return Validations()
.validatePassword(
text.toString().trim());
},
onChanged: (value) {
setState(() {
if (value[0].endsWith(' ')) {
oldPasswordController
.selection =
const TextSelection(
baseOffset: 0,
extentOffset: 0);
oldPasswordController.text =
value.trim();
} else {
Validations()
.validatePassword(value
.toString()
.trim());
}
});
},
decoration: InputDecoration(
suffixIcon: IconButton(
icon: Icon(_oldPasswordVisible
? Icons.visibility_off
: Icons.visibility),
color: AppColors.suffixIcon,
onPressed: () {
setState(() {
_oldPasswordVisible =
!_oldPasswordVisible;
});
},
),
border: InputBorder.none,
errorBorder: OutlineInputBorder(
borderSide: const BorderSide(
color: AppColors.error,
),
borderRadius:
BorderRadius.circular(
4.0),
),
focusedErrorBorder:
OutlineInputBorder(
borderSide: const BorderSide(
color: AppColors.error,
),
borderRadius:
BorderRadius.circular(
4.0),
),
hintText: Strings.h006,
hintStyle:
AppStyle().textStyleHint,
filled: true,
fillColor:
AppColors.textFormFieldFill,
isDense: true,
contentPadding:
const EdgeInsets.only(
left: 20.0,
bottom: 0.0,
top: 15.0,
),
focusedBorder:
OutlineInputBorder(
borderSide: const BorderSide(
color: AppColors
.textFormFieldFill),
borderRadius:
BorderRadius.circular(
4.0),
),
enabledBorder:
UnderlineInputBorder(
borderSide: const BorderSide(
color: AppColors
.textFormFieldFill,
),
borderRadius:
BorderRadius.circular(
10.0),
),
),
),
),
)
Run Code Online (Sandbox Code Playgroud)
Mar*_*ury 12
没有直接且官方的方法可以做到这一点。显然,contentPadding 也适用于 errorText。
不过,我找到了一个适合您的解决方法。从 InputDecoration 的 contentPadding 中删除左内边距。相反,请将此填充添加到 InputDecoration 的 prefix 属性内。所以你的最终 InputDecoration 将如下所示:
decoration: InputDecoration(
...
contentPadding: const EdgeInsets.only(bottom: 0.0, top: 15.0),
prefix: const Padding(
padding: EdgeInsets.only(left: 20.0)),
),
...
),
Run Code Online (Sandbox Code Playgroud)
这样,错误文本将从边框的左侧开始。
| 归档时间: |
|
| 查看次数: |
3036 次 |
| 最近记录: |