Android 如何在输入值时动态更改文本字段的宽度

Android 如何在输入值时动态更改文本字段的宽度,android,flutter,textfield,Android,Flutter,Textfield,我想动态更改文本字段的宽度,以适应输入值时的所有输入文本。 这就是我尝试过的 var valueIncreaser = 30; var textfieldSpanValue = 50.0; Container( width: textfieldSpanValue, child: TextFormField( onChanged: (text) { setState(() {

我想动态更改文本字段的宽度,以适应输入值时的所有输入文本。 这就是我尝试过的

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
              ],
              ),
)

var值递增器=30;
var textfieldSpanValue=50.0;
容器(
宽度:textfieldSpanValue,
子项:TextFormField(
一旦更改:(文本){
设置状态(){
textfieldSpanValue=20;
textfieldSpanValue=valueIncreaser+textfieldSpanValue*textfieldSpanValue;
});
},
控制器:myController,
最大长度:10,
马克斯:是的,
键盘类型:TextInputType.number,
输入格式化程序:[
WhiteListingPutFormatter.digitsOnly
],
),
)
我想要像这样的东西。


看起来您的代码中有一些简单的逻辑错误。您只需将宽度增量逻辑设置为:

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
              ],
              ),
)

var值递增器=30;
var textfieldSpanValue=50.0;
容器(
宽度:textfieldSpanValue,
子项:TextFormField(
一旦更改:(文本){
设置状态(){
textfieldSpanValue=20;
textfieldSpanValue=
valueIncreaser+textfieldSpanValue*text.length;
});
},
控制器:myController,
最大长度:10,
马克斯:是的,
键盘类型:TextInputType.number,
输入格式化程序:[
WhiteListingPutFormatter.digitsOnly
],
),
)