我目前正在尝试将 TextFormField 计数器移至顶部(实际输入框上方),但我不确定如何执行此操作。
因此计数器应该移动到输入框字段上方的右上角。我试图考虑建造一个新柜台,但一定有更简单的方法来做到这一点?我也尝试过使用 InputDecoration 但似乎没有什么真正起作用。
TextFormField(
maxLength: 1000,
decoration: InputDecoration(
labelText: label,
labelStyle: TextStyle(fontSize: 30,
),
)
Run Code Online (Sandbox Code Playgroud)
希望得到一些帮助,谢谢!
一种快捷方式是使用buildCounterwith transform。但这会包含一些额外的空格,我认为还可以。
TextFormField(
maxLength: 1000,
buildCounter: (context,
{required currentLength, required isFocused, maxLength}) {
return Container(
transform: Matrix4.translationValues(0, -kToolbarHeight, 0),
child: Text("$currentLength/$maxLength"),
);
},
),
Run Code Online (Sandbox Code Playgroud)
另一种方式 TextEditingController和Column
final TextEditingController controller = TextEditingController();
final maxLength = 1000;
@override
void initState() {
controller.addListener(() {
setState(() {});
});
super.initState();
}
Run Code Online (Sandbox Code Playgroud)
Column(
children: [
Align(
alignment: Alignment.centerRight,
child: Text("${controller.text.length}/$maxLength"),
),
TextFormField(
key: ValueKey("textFiled in Column"),
controller: controller,
buildCounter: (context,
{required currentLength,
required isFocused,
maxLength}) =>
SizedBox(),
),
],
),
Run Code Online (Sandbox Code Playgroud)
结果
| 归档时间: |
|
| 查看次数: |
3017 次 |
| 最近记录: |