繁体   English   中英

Flutter 问题:ListView.Builder 中的 DropDown

[英]Flutter issue: DropDown in ListView.Builder

我正在从服务器到下拉列表获取值,这些值是从下拉值的静态列表中插入的,但是当来自服务器的值是“待处理”时,我需要使用下拉列表来更新我的代码下方的特定记录。

  List<String> approvalList = ['Pending', 'Approve', 'Discard'];
  String dropdownValue="Pending";

 Container(
                  height: MediaQuery.of(context).size.height*0.3,
                  width: MediaQuery.of(context).size.width,
                  child:StreamBuilder<List<ApprovalModel>>(
                    stream: bloc.approvalsStream,
                    initialData: [],
                    builder: (context, snapshot) {
                      return ListView.builder(
                          itemCount: snapshot.data!.length,
                          itemBuilder: (context,i){
                            return snapshot.connectionState==ConnectionState.waiting?Lottie.asset(
                              'assets/lottieloading.json',
                              width: 70,
                              height: 70,
                              fit: BoxFit.fill,
                            ):ListTile(
                              title: Text(snapshot.data![i].approverName),
                              trailing: StatefulBuilder(
                                  builder: (BuildContext context, StateSetter setState) {

                                   return DropdownButton<String>(

                                        value: snapshot.data![i].status==0?'Pending':
                                        snapshot.data![i].status==1?'Approve':
                                        'Discard',



                                        items: approvalList.map((String val) {
                                          return DropdownMenuItem<String>(
                                            value: val,
                                            child: new Text(val),
                                          );
                                        }).toList(),
                                        hint: Text(selectedValue),


                                        onChanged: (val) {
                                          setState(() {
                                            dropdownValue = val!;
                                          });
                                        });
                                  }
                              ),
                            );
                          });
                    }
                  )
                  ,
                ),

如您所见,我正在从服务器设置值,它工作正常,但是当该值处于待处理状态时,我想使用下拉列表来更新数据库中的记录。

onChanged更新dropdownValue ,还调用用于更新数据库中记录的方法。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM