Flutter 颤振:扩展文件小部件中TextEditingController的多光标

Flutter 颤振:扩展文件小部件中TextEditingController的多光标,flutter,cursor,flutter-layout,flutter-widget,Flutter,Cursor,Flutter Layout,Flutter Widget,我在一个扩展文件中有两个TextEditingController 当我点击其中一个按钮时,我会在所有的TextEditingController上看到多个光标 当我将一个文本放入TextEditingController(或任何操作)中时:它会影响同一ExpansionFile小部件中的所有其他文本 ExpansionFile:它是一个简单而有用的小部件。此小部件允许您创建具有类似ListTile功能的折叠或扩展视图。它就像一个ListTile,点击标题后会展开 TextEditingCon

我在一个扩展文件中有两个TextEditingController

当我点击其中一个按钮时,我会在所有的TextEditingController上看到多个光标

当我将一个文本放入TextEditingController(或任何操作)中时:它会影响同一ExpansionFile小部件中的所有其他文本

ExpansionFile:它是一个简单而有用的小部件。此小部件允许您创建具有类似ListTile功能的折叠或扩展视图。它就像一个ListTile,点击标题后会展开


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,
            ),
           .....
    
          ],
        ));
      }