问题:使用静态Json可以轻松地设置与ListView平行的一定数量的开关按钮,但是当JSON数据本质上是动态的时,我无法理解如何与ListView Builder并行使用开关按钮?< / p>
示例
Input
MapIDs={upi282:1,upi219:1,upi211:0,upi236:0};// number of upi..'s increase or decrease based on fetching data from API
我想在上面的Json中使用带开关按钮的ListViewBuilder,以便用户可以更改键值 然后单击更新按钮,它将获取API的更新的JSON。
有人知道如何实现吗?
Code:
MapIDs={upi282:1,upi219:1,upi211:0,upi236:0};// number of upi..'s increase or decrease
bool switch_Value=true;
Widget generateListandGetValue( MapIDs,int LengthofMap,switch_Value) {
return ListView.builder(
scrollDirection: Axis.vertical,
shrinkWrap: true,
itemCount:LengthofMap,
itemBuilder: (BuildContext context, int index) {
return Row(
children: <Widget>[
Expanded(
child: ListTile(
title: Text(
'\nName- ${MapIDs[index]}\n',
style: TextStyle(
fontSize: 15.0,
fontWeight: FontWeight.w700),
),
trailing:
Switch(
value: switch_Value,
onChanged: AlertsStatus,
activeColor: greenColor,
activeTrackColor: greenColor,
),
// onExpansionChanged: toggleAlertsStatus,
selected: true,
),
),
],
);
});
}
void AlertsStatus(alertsOn) {
setState(() {
print(alertsOn);
alertsOn ? _buttonStatus = 1 : _buttonStatus = 0;
});
}
我尝试过,但是不明白如何使用switch按钮获取动态JSON和返回值
output: {upi282:0,upi219:0,upi211:1,upi236:0}