Flutter 颤振:扩展文件小部件中TextEditingController的多光标
我在一个扩展文件中有两个TextEditingController 当我点击其中一个按钮时,我会在所有的TextEditingController上看到多个光标 当我将一个文本放入TextEditingController(或任何操作)中时:它会影响同一ExpansionFile小部件中的所有其他文本 ExpansionFile:它是一个简单而有用的小部件。此小部件允许您创建具有类似ListTile功能的折叠或扩展视图。它就像一个ListTile,点击标题后会展开Flutter 颤振:扩展文件小部件中TextEditingController的多光标,flutter,cursor,flutter-layout,flutter-widget,Flutter,Cursor,Flutter Layout,Flutter Widget,我在一个扩展文件中有两个TextEditingController 当我点击其中一个按钮时,我会在所有的TextEditingController上看到多个光标 当我将一个文本放入TextEditingController(或任何操作)中时:它会影响同一ExpansionFile小部件中的所有其他文本 ExpansionFile:它是一个简单而有用的小部件。此小部件允许您创建具有类似ListTile功能的折叠或扩展视图。它就像一个ListTile,点击标题后会展开 TextEditingCon
TextEditingController:将TextEditingController连接到文本字段。我已使用不同的focusNode解决了此问题
widget build(){
...
...
ExpansionTile(
title: Container(
width: double.infinity,
child: Text("Parametre vitaux",
style: TextStyle(fontSize: 18),)),
trailing: Icon(Icons.arrow_drop_down, size: 32,
color: Colors.black,),
onExpansionChanged: (value) {
setState(() {
// isExpand=value;
});
},
children: [
listmesures()
]
)
}
Widget listmesures() {
return Container(child:
ListView(
shrinkWrap: true,
scrollDirection: Axis.vertical,
children: [
TextFormField(
keyboardType: TextInputType.phone,
focusNode: f2,
controller: _poidsController,
style: GoogleFonts.lato(
fontSize: 18, fontWeight: FontWeight.bold),
decoration: InputDecoration(
contentPadding:
EdgeInsets.only(left: 20, top: 10, bottom: 10),
border: OutlineInputBorder(
borderRadius:
BorderRadius.all(Radius.circular(90.0)),
borderSide: BorderSide.none,
),
filled: true,
fillColor: Colors.grey[350],
hintText: 'Poids Kg*',
hintStyle: GoogleFonts.lato(
color: Colors.black26,
fontSize: 18,
fontWeight: FontWeight.w800,
),
),
validator: (value) {
if (value.isEmpty) {
return 'entrez poids';
}
return null;
},
onFieldSubmitted: (String value) {
f2.unfocus();
FocusScope.of(context).requestFocus(f3);
},
textInputAction: TextInputAction.next,
),
SizedBox(
height: 10,
),
TextFormField(
keyboardType: TextInputType.phone,
focusNode: f2,
controller: _tempController,
style: GoogleFonts.lato(
fontSize: 18, fontWeight: FontWeight.bold),
decoration: InputDecoration(
contentPadding:
EdgeInsets.only(left: 20, top: 10, bottom: 10),
border: OutlineInputBorder(
borderRadius:
BorderRadius.all(Radius.circular(90.0)),
borderSide: BorderSide.none,
),
filled: true,
fillColor: Colors.grey[350],
hintText: 'Temperature*',
hintStyle: GoogleFonts.lato(
color: Colors.black26,
fontSize: 18,
fontWeight: FontWeight.w800,
),
),
validator: (value) {
if (value.isEmpty) {
return 'entrez temperature';
}
return null;
},
onFieldSubmitted: (String value) {
f2.unfocus();
FocusScope.of(context).requestFocus(f3);
},
textInputAction: TextInputAction.next,
),
.....
],
));
}