Flutter 是否可以在颤振中使用从for循环创建的单选列表平铺来输出和选择构造函数中的数据

Flutter 是否可以在颤振中使用从for循环创建的单选列表平铺来输出和选择构造函数中的数据,flutter,Flutter,这是我做的构造器 class User { String strength1; String strength2; String strength3; String strength4; String strength5; User({this.strength1, this.strength2, this.strength3,this.strength4,this.strength5}); Map<Str

这是我做的构造器

    class User {

     String strength1;
     String strength2;
     String strength3;
     String strength4;
     String strength5;

     User({this.strength1, this.strength2, this.strength3,this.strength4,this.strength5});

     Map<String, dynamic>toMap(){
     var map = <String, dynamic>{
     'strength1' : strength1,
     'strength2' : strength2,
     'strength3' : strength3,
     'strength4' : strength4,
     'strength5' : strength5,
      };
     return map;
    }
    User.fromMap(Map <String, dynamic>map){
     strength1 = map['strength1'];
     strength2 = map['strength2'];
     strength3 = map['strength3'];
     strength4 = map['strength4'];
     strength5 = map['strength5'];
   }

  }
类用户{
弦强度1;
弦强度2;
弦强度3;
弦强度4;
弦强度5;
用户({this.strength1,this.strength2,this.strength3,this.strength4,this.strength5});
MaptoMap(){
变量映射={
“强度1”:强度1,
“强度2”:强度2,
“强度3”:强度3,
“强度4”:强度4,
“强度5”:强度5,
};
返回图;
}
User.fromMap(地图地图){
strength1=地图['strength1'];
strength2=map['strength2'];
strength3=地图['strength3'];
strength4=地图['strength4'];
strength5=地图['strength5'];
}
}
然后循环应该是

      List<Widget> createRadioListUsers() {
  List<Widget>widgets = [];
  for (User user in users) {
    widgets.add(
      RadioListTile(
        value: user,
        groupValue: selectedUser,
        title: Text(user.strengths),
        onChanged: (currentUser) {
          print('Current User ${currentUser.strengths}');

          setSelectedUser(currentUser);
        },
        selected: selectedUser == user,
        activeColor: Colors.green,
       
    );
  }
  return widgets;
}
列出createRadioListUsers(){
Listwidgets=[];
for(用户中的用户){
widgets.add(
放射科医师(
值:用户,
groupValue:selectedUser,
标题:文本(用户.优势),
onChanged:(当前用户){
打印('Current User${currentUser.strengths}');
setSelectedUser(当前用户);
},
已选择:selectedUser==用户,
activeColor:Colors.green,
);
}
返回窗口小部件;
}

我从一个教程中学习了这个循环,并尝试更改构造函数的类型,但显然单选按钮的值不起作用,因为在教程中已经给出了值,但对于我正在制作的程序,我必须从另一个页面获取用户输入,并将其显示在单选列表块中StreamBuilder:

首先,让我们声明控制器、流和getter

final BehaviorSubject<User> _radioController = BehaviorSubject<User>();
Stream<User> get radioStream => _radioController.stream;
Function(User) get updateRadio => _radioController.sink.add;
final BehaviorSubject\u radioController=BehaviorSubject();
Stream get radioStream=>\u radioController.Stream;
函数(用户)get updateRadio=>\u radioController.sink.add;
然后,将构建器放入小部件中

StreamBuilder(
      stream: radioStream,
      initialData: null,
      builder: (BuildContext context, AsyncSnapshot<User> snapshot) {
for (User user in users) {
    widgets.add(
      RadioListTile(
        value: user,
        groupValue: snapshot.data, // The value will be updated when you select an other radio
        title: Text(user.strengths),
        onChanged: updateRadio, // Update the groupValue
        selected: selectedUser == user,
        activeColor: Colors.green,
       
    );
  },
  // Return your widgets, for example Column(children: widgets),
},
),
...
StreamBuilder(
流:无线流,
initialData:null,
生成器:(BuildContext上下文,异步快照){
for(用户中的用户){
widgets.add(
放射科医师(
值:用户,
groupValue:snapshot.data,//当您选择其他电台时,该值将被更新
标题:文本(用户.优势),
onChanged:updateRadio,//更新groupValue
已选择:selectedUser==用户,
activeColor:Colors.green,
);
},
//返回小部件,例如列(子项:小部件),
},
),
...

所以我在用户中做了一个int id1-5更新,并做了一个int id1-5更新。现在,当我按下1单选按钮时,所有东西都被选中了Behavior Subject是关键字,或者我应该输入类似列表之类的内容吗?我使用Behavior Subject,但它只是一种StreamController。你可以通过获取rxdart包或使用StreamController来获得它。