【发布时间】:2021-12-20 00:43:21
【问题描述】:
我正在从服务器获取值到下拉列表,这些值是从下拉列表值的静态列表中插入的,但是当来自服务器的值是“待定”时,我需要使用下拉列表来更新我的代码下方的特定记录。
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!;
});
});
}
),
);
});
}
)
,
),
如您所见,我正在从服务器设置值,它工作正常,但是当该值处于待处理状态时,我想使用下拉列表更新数据库中的记录。
【问题讨论】:
-
根据您的说法,您想在数据库处于挂起状态时使用
DropDown更新数据库。这是否意味着您希望仅在获得snapshot.data![i].status==0?'Pending':后更新 db,或者您希望在从 DropDownMenu 中选择后更新? -
我需要下拉按钮的更新和状态更改。
标签: android flutter mobile-development flutter-dropdownbutton