Flutter 颤振-TextFormField内的加载/进度指示器
我有这样一个TextFormField:Flutter 颤振-TextFormField内的加载/进度指示器,flutter,Flutter,我有这样一个TextFormField: TextFormField( cursorColor: Colors.black, decoration: InputDecoration( prefixIcon: Icon(Icons.email), errorMaxLines: 2, border: OutlineInputBorder( borderRadius: BorderRad
TextFormField(
cursorColor: Colors.black,
decoration: InputDecoration(
prefixIcon: Icon(Icons.email),
errorMaxLines: 2,
border: OutlineInputBorder(
borderRadius: BorderRadius.circular(10),
),
errorBorder: OutlineInputBorder(
borderSide: BorderSide(
width: 2,
),
),
),
autocorrect: false,
onChanged: (_) {},
validator: (_) {},
),
每当调用onChanged()时,这个TextFormField将从api获取一封电子邮件,因此我决定在其中放置一个进度/加载指示器,以指示它正在获取数据,但我很难理解如何实现它
那么,有没有一种方法可以在TextFormField中插入CircularProgressIndicator()或简单的进度/加载指示器
大概是这样的:
加载前,将此变量添加到类statefull小部件中
bool _isLoading = true;
所以当你的邮件加载时
setState(){
_isLoading = false;
}
和添加此文本字段代码
TextFormField(
cursorColor: Colors.black,
decoration: InputDecoration(
prefixIcon: Icon(Icons.email),
suffix: isLoading?CircularProgressIndicator():null,
errorMaxLines: 2,
border: OutlineInputBorder(
borderRadius: BorderRadius.circular(10),
),
errorBorder: OutlineInputBorder(
borderSide: BorderSide(
width: 2,
),
),
),
autocorrect: false,
onChanged: (_) {},
validator: (_) {},
),
TextFormEdit没有正确的属性,即后缀小部件。 尽管如此,InputDecoration仍然有后缀属性,您可以在其中附加任何您想要的进度小部件。 在这里,您可以直接在小部件中保持它的可见或不可见(以及一系列其他设置)
TextFormField(
cursorColor: Colors.black,
decoration: InputDecoration(
prefixIcon: Icon(Icons.email),
suffix: isLoading?CircularProgressIndicator():null
errorMaxLines: 2,
border: OutlineInputBorder(
borderRadius: BorderRadius.circular(10),
),
errorBorder: OutlineInputBorder(
borderSide: BorderSide(
width: 2,
),
),
),
autocorrect: false,
onChanged: (_) {},
validator: (_) {},
),
道具,我也能够实现它使用
堆栈(
儿童:[
TextFormField(
光标颜色:颜色。黑色,
装饰:输入装饰(
前缀:图标(Icons.email),
errorMaxLines:2,
边框:大纲输入边框(
边界半径:边界半径。圆形(10),
),
errorBorder:OutlineInputBorder(
边界边(
宽度:2,
),
),
),
自动更正:错误,
一旦改变:({},
验证器:({},
),
(州:提交)
?定位(
前五名,
右:5,,
子:容器(
子对象:CircularProgressIndicator(),
),
)
:Container(),
],
),
我很想这样做,这似乎确实有效,但有没有办法将它放在textformfield的中心位置?你需要图标电子邮件和加载??或者只是其中的一个?我明白了,我花了我所有的时间研究TextFormEdit属性,找到适合这个用例的属性。谢谢你,伙计!
Stack(
children: <Widget>[
TextFormField(
cursorColor: Colors.black,
decoration: InputDecoration(
prefixIcon: Icon(Icons.email),
errorMaxLines: 2,
border: OutlineInputBorder(
borderRadius: BorderRadius.circular(10),
),
errorBorder: OutlineInputBorder(
borderSide: BorderSide(
width: 2,
),
),
),
autocorrect: false,
onChanged: (_) {},
validator: (_) {},
),
(state.isSubmitting)
? Positioned(
top: 5,
right: 5,
child: Container(
child: CircularProgressIndicator(),
),
)
: Container(),
],
),