我想在输入值时动态更改文本字段的宽度以适合所有输入文本。 这就是我尝试过的。
var valueIncreaser = 30;
var textfieldSpanValue = 50.0;
Container(
width: textfieldSpanValue,
child: TextFormField(
onChanged: (text) {
setState(() {
textfieldSpanValue = 20;
textfieldSpanValue = valueIncreaser + textfieldSpanValue * textfieldSpanValue;
});
},
controller: myController,
maxLength: 10,
maxLengthEnforced: true,
keyboardType: TextInputType.number,
inputFormatters: <TextInputFormatter>[
WhitelistingTextInputFormatter.digitsOnly
],
),
)
答案 0 :(得分:2)
您的代码中似乎有一些简单的逻辑错误。您需要做的就是将宽度增量逻辑设置为此:
textfieldSpanValue = valueIncreaser + textfieldSpanValue * text.length;
var valueIncreaser = 30;
var textfieldSpanValue = 50.0;
Container(
width: textfieldSpanValue,
child: TextFormField(
onChanged: (text) {
setState(() {
textfieldSpanValue = 20;
textfieldSpanValue =
valueIncreaser + textfieldSpanValue * text.length;
});
},
controller: myController,
maxLength: 10,
maxLengthEnforced: true,
keyboardType: TextInputType.number,
inputFormatters: <TextInputFormatter>[
WhitelistingTextInputFormatter.digitsOnly
],
),
)